当我访问页面上的特定元素时,如何更改jQuery Cycle2插件中数据周期的值?
我有一个jQuery循环2。使用data cycle paused=“true”我可以无限期地暂停幻灯片放映 我需要做的是,当用户到达页面上的该点时,将data cycle paused=“true”更改为data cycle paused=“false”,以便动画开始当我访问页面上的特定元素时,如何更改jQuery Cycle2插件中数据周期的值?,jquery,jquery-cycle2,Jquery,Jquery Cycle2,我有一个jQuery循环2。使用data cycle paused=“true”我可以无限期地暂停幻灯片放映 我需要做的是,当用户到达页面上的该点时,将data cycle paused=“true”更改为data cycle paused=“false”,以便动画开始 我已经搜索了API文档以及许多其他来源,但我找不到任何关于触发滑块的更改。我在中找到了以下解决方案。 在命令部分中从后面的第二个命令 恢复-恢复暂停的幻灯片放映 $('.cycle-slideshow').cycle('resu
我已经搜索了API文档以及许多其他来源,但我找不到任何关于触发滑块的更改。我在中找到了以下解决方案。 在
命令
部分中从后面的第二个命令
恢复-恢复暂停的幻灯片放映
$('.cycle-slideshow').cycle('resume');
希望这就是你要找的
编辑:
尝试以下解决方案,请注意,它仅适用于站点上的第一个幻灯片放映:
$(window).scroll(function(){
var animatedElement = document.getElementsByClassName('cycle-slideshow')[0],
animatedElementPosition = animatedElement.offsetTop,
animatedElementHeight = animatedElement.offsetHeight,
currentScrollPosition = window.pageYOffset,
resumed = false;
if( (currentScrollPosition >= animatedElementPosition) &&
(currentScrollPosition <= animatedElementPosition + animatedElementHeight ) ){
if(!resumed){
$('.cycle-slideshow').cycle('resume');
resumed = true;
}
} else {
if(resumed){
$('.cycle-slideshow').cycle('pause');
resumed = false;
}
}
});
这可能意味着,由于jQuery没有被包含一次,而是更多,所以出现了问题
是的,在您的html中:
<script src="js/jquery-2.0.3.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
如果您确信删除第二个插件不会影响您的网站功能,例如其他插件可能需要这个较旧版本的jquery,然后删除它!:)应该有用
注意,当你向下滚动到向上时,你的动画会比它应该显示的更快,因为“循环幻灯片”的高度比我能看到的图像要大得多。你可以为
滚动
事件()创建一个事件处理程序,并在其中使用任何方法来检测你的幻灯片是否显示在视图中:
一经发现,就去做
$('.cycle-slideshow').cycle('resume');
嗨,加勒特,什么是最好的触发方式?嗨,加勒特,为延误道歉-我昨天出去了。我实现了代码。它现在已就位,但未正确触发。我也找不到jQuery的副本。请让我知道你的想法。@fmz我不知道怎么想,但看起来你有2个jQuery。在浏览器中点击
F12
,然后按Ctrl+F
,然后键入jquery
,您将看到以下几行,如我上面所述。试着用代码中的jQuery注释行,看看会发生什么。也许第三方也包括jQuery。我注释掉了1.11.3版本,现在滑块坏了。即使搜索源代码,我也找不到jquery 2.0.3。@fmz尝试粘贴此
,现在仍然是1.11.3。
$('.cycle-slideshow').cycle('resume');