我使用流行的jQuery scrollTo/localScroll插件来创建一个单一的页面导航系统,自动滚动窗口到各种锚标签。我有它没有问题,但我无法阻止排队动画。localscroll jQuery插件 - 动画排队问题
我有一个无序列表的“main_nav”的ID,我现在用跳到锚点:
<ul id="main_nav">
<li><a href="#one">One<a> </li>
<li><a href="#two">Two</a></li>
<li><a href="#three">Three</a> </li>
<li><a href="#four">Four</a> </li>
</ul>
当调用功能,有一个名为“停止”参数,它应该是通过jquery stop()函数清除当前排队的动画。该参数在插件中默认为“true”,但我仍然指定了它。该插件还默认将该窗口作为滚动目标。我打电话的功能,像这样:
$(document).ready(function() {
$('#main_nav').localScroll({
duration:2000,
stop:true
});
});
这工作,但“停止”参数被忽略......如果我点击快速连续四个环节,页面会后,其他滚动到每一个环节,总共需要8秒钟才能完成。不理想!如果我把整个页面包装在一个容器div中,给它一个高度,并将其设置为溢出:scroll;然后使用localScroll函数定位该div,然后停止参数起作用。例如,当这样调用没有更多的动画队列:
$(document).ready(function() {
$('#main_nav').localScroll({
target: $('#container'),
duration:2000,
stop:true
});
});
看来,当插件引用一个div作为目标进行滚动,它能够执行的jQuery stop()函数,但是当目标设置为'窗口'停止功能不起作用。
我试图创建一个jQuery包装器窗口对象和引用,作为目标,像这样:
$(document).ready(function() {
$('#main_nav').localScroll({
target: $('window'),
duration:2000,
stop:true
});
});
...但是这也不管用。在插件本身,默认值是:
$localScroll.defaults = {
duration:1000, // How long to animate.
axis:'y', // Which of top and left should be modified.
event:'click', // On which event to react.
stop:true, // Avoid queuing animations
target: window, // What to scroll (selector or element). The whole window by default.
reset: true // Used by $.localScroll.hash. If true, elements' scroll is resetted before actual scrolling
};
有没有人对如何从cueueing停止动画任何想法?
我使用: 的jQuery 1.6.1,1.4.2 scrollTo,localScroll 1.2.7
*我已经在动画Window对象没有问题。问题在于,当用户快速连续点击几个链接时,动画就会被提示。当目标设置为$('window')时,添加'stop'参数不起作用。当目标被更改为$('body')时,问题仍然存在...... – 2011-08-16 09:35:51
我在调整窗口大小时滚动窗口时出现此问题,而这根本无法解决问题。 – 2011-11-13 08:54:49