点击一个按钮,我试图淡出图像,当它渐渐淡出时,我正在改变图像的来源。然后我使用fadeIn来显示新图像。这在Chrome和Firefox中运行良好。但是,在ie10中,图像淡出,淡入,然后出现新图像。我无法找到它的解决方案。我试图延长fadeOut,fadeIn的持续时间。我尝试过使用setTimeout函数。我尝试过使用promise()。done()函数。我已经尝试过使用Jquery UI的hide / show w / slide效果,并且出现了同样的问题。似乎没有什么工作。我真的很感激任何帮助。感谢
me.$el.find('#printable-detail-static-imageRight').fadeOut('fast', function(){
me.$el.find('#printable-detail-static-imageRight').attr('src', me.options.samplePrints[k+i]);
me.disableNext();
});
me.$el.find('#printable-detail-static-imageRight').fadeIn('slow')
答案 0 :(得分:1)
我很确定你需要将.fadeIn
方法放在回调函数中,以便它受回调函数的影响。实际上,我会在.attr
方法中添加另一个回调函数,以确保它仅在src
更改后才会消失。
Here's我写的一个jsFiddle来说明我的意思。
答案 1 :(得分:1)
我在Mac上,但这段代码是否适用于ie? jsFiddle
html的
<div id="content">Promises</div>
<button id="click">start animation</button>
的.js
$("#click").on("click", function () {
$('#content').fadeOut({
duration: 1000,
// run when the animation is complete
complete: function () {
$("#content").append($("<div>").addClass("fakeimg"));
},
// run when the animation is complete +
//it's promise is resolved
done: function () {
$('#content').fadeIn(1000);
}
});
});
答案 2 :(得分:0)
这有效:
me.$el.find('#printable-detail-static-imageRight').animate({
opacity:0
}, {
duration: 700,
step: function(now, fx){
if(fx.pos > 0.40 && fx.pos < 0.5){
$(this).attr('src', me.options.samplePrints[k+i]);
me.disableNext();
}
if (fx.pos ==1) {
$(this).animate({
opacity:1
}, 200);
}
}
});