【发布时间】:2016-11-26 12:44:31
【问题描述】:
我有这样的事情:
<a href="/url_to_gallery_1"><img src="image_1.jpg" data-alt-src="image_2.jpg;image_3.jpg;image_4.jpg" class="img-loop"></a>
<a href="/url_to_gallery_2"><img src="image_A.jpg" data-alt-src="image_B.jpg;image_C.jpg" class="img-loop"></a>
我希望图像在悬停时改变,并循环遍历所有替代图像,大约每秒改变一次。我希望它在最后重新开始一次,原始图像应该在悬停后返回。
基本上,是这样的:
Img 1 --> 开始悬停 --> Img 2, 3, 4, 1, 2...(每次更改之间都有暂停)--> 结束悬停 --> Img 1
(我简化了例子,但实际的URL不会是顺序的。我也不知道data-alt-src中会有多少张图片,甚至可能没有。)
到目前为止,我有这个:
$('img.img-loop')
.mouseover(function() {
$(this).data('old-src', $(this).attr('src'));
var alt_src = $(this).data('alt-src').split(';');
var i;
for (i = 0; i < alt_src.length; i++) {
$(this).attr('src', alt_src[i]);
}
})
.mouseout(function() {
$(this).attr('src', $(this).data('old-src'));
});
我被图像之间的延迟所困扰。我尝试过使用 setInterval 和 setTimeout,但到目前为止没有成功。
我还应该提到,我实际上不想要任何类型的预加载(会有几个画廊链接,所以每个画廊的每个预览图像......这会很多)。
【问题讨论】:
-
上传到jsFiddle会更方便。
-
@Devs 不,请不要邀请OP去jsFiddle:更方便的地方是使用嵌入式SE sn-p {Ctrl+M}。
标签: javascript jquery