可能重复:
jQuery fade to new image
我有以下代码在悬停时交换(预加载)图像:
$(document).ready(function() {
$(".pf-item img").hover(
function(){this.src = this.src.replace(".jpg","-h.jpg");},
function(){this.src = this.src.replace("-h.jpg",".jpg");
});
var imgSwap = [];
$(".img-swap").each(function(){
imgUrl = this.src.replace(".jpg","-h.jpg");
imgSwap.push(imgUrl);
});
$(imgSwap).preload();
});
$.fn.preload = function() {
this.each(function(){
$('<img/>')[0].src = this;
});
}
它的效果非常好,但是我希望能够在图像.jpg和-h.jpg之间淡出。
有谁知道如何做到/有更好的方法来解决问题?我尝试了很多不同的fadeIn()方法,但似乎都没有工作,或者只是为了几个鼠标而工作,然后替换一个空白图像。
答案 0 :(得分:2)
我建议使用mouseover / mouseout方法。
我的HTML设置如下。
<div class="imageWrap">
<img class="shown" src="image-1.jpg" width="300" height="300" />
<img class="hidden" src="image-2.jpg" width="300" height="300" />
</div>
然后使用jQuery,你可以像这样交换它们
$(".imageWrap").mouseover(function() {
$(this).children(".shown").fadeOut("fast");
$(this).children(".hidden").fadeIn("fast");
});
$(".imageWrap").mouseout(function() {
$(this).children(".shown").fadeIn("fast");
$(this).children(".hidden").fadeOut("fast");
});
别忘了你的CSS
.imageWrap {width:300px; height:300px;}
.imageWrap > img {position:absolute;}
.imageWrap > .hidden {display:none;}