我制作了一个简单的图像切换器,可以逐渐显示不同的徽标。 http://bit.ly/ewrSgp上的示例和完整源代码。我淡出图像,然后排队src属性更改,然后淡入。它似乎平稳地工作了一段时间但是在20秒左右之后它开始淡化图像,然后更改src,然后立即改变,看起来丑陋。我这样做了吗?
运行更改的代码是:
// fadeout old image, change to new and fadeback in.
// Call function changeimage again.
$(imToChange).fadeOut(600).queue(function (n) {
jQuery(this).attr('src', newimageSrc);
n();
}).fadeIn(1000, function () {
setTimeout(function () {
//recall image change function
changeImage(indexToChange);
}, o.delay);
});
提前致谢。
答案 0 :(得分:1)
我认为你需要等待图像完成加载。我尝试在可见区域外或其他图像后面显示图像,直到onload事件触发,然后将其移动并在适当的位置淡入。
像这样。
var img = $("<img href='newimage.png' />").load(function() { movit(); fadeit(); });
$("#ahiddenelement").append(img);
答案 1 :(得分:1)
我看到一些闪烁,但不是很多。我注意到它发生在一个特定的标志上,我想我第一次看到它,但不是下一次,这让我觉得一旦加载,它就没事了。一些想法:
答案 2 :(得分:1)
另一种解决方案:如何使用jQuery的.load()
或.get()
替换它,而不是更改图像的来源?然后你可以使用一个回调函数,它只在加载完成后才会触发,然后将其淡入。
答案 3 :(得分:0)
指定 img 标记的宽度和高度。