我在一个页面上有多个内容预告片,每个预告片都有多个可以循环播放的图像。我希望能够使用 jquery 循环,以便它选择一个随机预告片并循环到下一个图像,然后选择另一个随机预告片并重复相同的操作。结果应该是一页图像,其中一个图像一次在页面上的某个位置移动。
HTML -
<div class="video-slidehow">
<span class="video-thumb slideshow"><img src=""></span>
<span class="video-thumb slideshow"><img src=""></span>
<span class="video-thumb slideshow"><img src=""></span>
</div>
<div class="video-slidehow">
<span class="video-thumb slideshow"><img src=""></span>
<span class="video-thumb slideshow"><img src=""></span>
<span class="video-thumb slideshow"><img src=""></span>
<span class="video-thumb slideshow"><img src=""></span>
</div>
<div class="video-slidehow">
<span class="video-thumb slideshow"><img src=""></span>
<span class="video-thumb slideshow"><img src=""></span>
</div>
所以它选择一个随机的“视频幻灯片”包装器,然后将该包装器的“视频拇指”子循环到下一个。然后它选择一个不同的“video-slideshow”包装器并将“video-thumb”子代循环到下一个。
请注意,我已经清理了这个 html 以使其更容易,每个视频幻灯片 div 确实有额外的父 div 等。
我一直在尝试通过将一个类移动到不同的 div 并将其作为 jquery 元素来做到这一点,但这显然不是解决方案!
jQuery -
var elements = $('.video-slidehow');
$(elements[Math.floor(Math.random()*elements.length)]).addClass('someClass');
$('.someClass').cycle({
fx: 'scrollRight',
easing: 'easeInOutBack',
speed: 700,
timeout: 7000,
after: doAfter
});
function doAfter() {
$('.someClass').removeClass('someClass');
var elements = $('.video-slidehow');
$(elements[Math.floor(Math.random()*elements.length)]).addClass('someClass');
}
关于“随机”要求。理想情况下,它不能连续两次执行相同的包装 div。
在puppybeard的回答之后,我尝试了以下方法无济于事,但我觉得这开始走上正轨了!-
var elements = $('.video-slidehow');
$('.video-slidehow').cycle({
fx: 'scrollRight',
easing: 'easeInOutBack',
speed: 700,
timeout: 7000,
after: doAfter
});
function doAfter() {
$('.video-slidehow').cycle('pause');
$(elements[Math.floor(Math.random()*elements.length)]).cycle('resume');
}