【发布时间】:2014-07-14 15:44:51
【问题描述】:
第二张幻灯片等待第一张幻灯片完成IN THIS FIDDLE
想象一下,如果我必须在一页中有四个幻灯片:幻灯片一、幻灯片二、幻灯片三和幻灯片四。
所有幻灯片的包装器具有相同的类并且没有ID,并且幻灯片使用相同的脚本运行:
实际上,只有一个幻灯片(第一个)将显示在页面中,而其余的仍然隐藏。如果只点击指向第二张幻灯片的第二个链接,则第二张幻灯片将显示在页面中,同时第一张幻灯片将自动隐藏。
如果在加载页面后不久通过单击其链接将第二个幻灯片显示在包装器 DIV 中,则第二个幻灯片是空白的,没有内容。其空白的问题是因为第二个幻灯片正在等待第一个幻灯片完成滑动其中的所有内容。
这是我的html代码:
<!--SLIDESHOW ONE-->
<div class="bigandsmall">
<div class="bigPicture">
<div class="easyzoom easyzoom--overlay">
<img src="colour/big/Evan-Picone-Turtleneck-Sweater-Dress__01688224_luna_1.jpg"></div>
<div class="easyzoom easyzoom--overlay">
<img src="colour/big/Evan-Picone-Turtleneck-Sweater-Dress__01688224_luna_2.jpg"></div>
</div>
<div class="smallPicture">
<img src="colour/thumnail/Evan-Picone-Turtleneck-Sweater-Dress__01688224_luna_1.jpg">
<img src="colour/thumnail/Evan-Picone-Turtleneck-Sweater-Dress__01688224_luna_2.jpg">
</div>
</div>
<!--END OF SLIDESHOW ONE-->
<!--SLIDESHOW TWO-->
<div class="bigandsmall">
<div class="bigPicture">
<div class="easyzoom easyzoom--overlay">
<img src="colour/big/Evan-Picone-Turtleneck-Sweater-Dress__01688224_luna_1.jpg"></div>
<div class="easyzoom easyzoom--overlay">
<img src="colour/big/Evan-Picone-Turtleneck-Sweater-Dress__01688224_luna_2.jpg"></div>
</div>
<div class="smallPicture">
<img src="colour/thumnail/Evan-Picone-Turtleneck-Sweater-Dress__01688224_luna_1.jpg">
<img src="colour/thumnail/Evan-Picone-Turtleneck-Sweater-Dress__01688224_luna_2.jpg">
</div>
</div>
<!--END OF SLIDESHOW TWO-->
这是我用来运行所有幻灯片的脚本:
var $el = $('.bigandsmall'),
// SETUP ////////
F = 600 , // Fade Time
P = 5000 , // Pause Time
C = 0 , // Counter / Start Slide# (0 based)
///////////////////
$sl = $('.bigPicture > div'),
$th = $('.smallPicture > img'),
N = $sl.length,
T = 10000;
$sl.hide().eq(C).show();
$th.eq(C).addClass('on');
// ANIMATION
function anim() {
$sl.eq(C%N).stop(1).fadeTo(F,1).siblings().fadeTo(F,0);
$th.removeClass('on').eq(C%N).addClass('on');
}
// AUTO ANIMATE
function autoAnim() {
T = setTimeout(function() {
C++;
anim(); // Animate
autoAnim(); // Prepare another iteration
}, P+F);
}
autoAnim(); // Start loop
// HOVER PAUSE
$el.hover(function(e) {
return e.type==='mouseenter'? clearTimeout( T ) : autoAnim();
});
// HOVER THUMBNAILS
$th.on('mouseenter', function() {
C = $th.index( this );
anim();
});
【问题讨论】:
-
定义函数,然后单独或在循环中调用幻灯片,如果它是一个列表,它在
$el -
@Fallenreaper 感谢您对其进行分析。但我编辑了我的问题,拜托...
-
你没有定义
variable C和variable P
标签: javascript jquery slider slideshow slidetoggle