scrollTo-jQuery插件。滚动很好,但尝试向上滚动时会出现锯齿状和';卡住';
我正在使用scrollTo插件,并在“click”事件中的animate方法的回调函数中执行它 页面滚动很好,但如果我使用鼠标滚轮或滚动条尝试返回,它不会允许我。它只是有点卡住了,和我打架——创造了一种跳跃的效果。大约一秒钟后,它恢复正常行为 我无法显示发生这种情况的确切地点(不允许),但我已复制了下面的代码:scrollTo-jQuery插件。滚动很好,但尝试向上滚动时会出现锯齿状和';卡住';,jquery,jquery-ui,jquery-plugins,jquery-selectors,scrollto,Jquery,Jquery Ui,Jquery Plugins,Jquery Selectors,Scrollto,我正在使用scrollTo插件,并在“click”事件中的animate方法的回调函数中执行它 页面滚动很好,但如果我使用鼠标滚轮或滚动条尝试返回,它不会允许我。它只是有点卡住了,和我打架——创造了一种跳跃的效果。大约一秒钟后,它恢复正常行为 我无法显示发生这种情况的确切地点(不允许),但我已复制了下面的代码: // This function finds the first item that has an opacity set to 1 (full) function moveIt() {
// This function finds the first item that has an opacity set to 1 (full)
function moveIt() {
var theItem = $('.work').filter( function(j) { return $(this).css('opacity') == 1 } ).eq(0);
$("html").scrollTo( theItem, 350 );
}
$("#work-menu-client a").click(
function () {
var val = $(this).attr("href");
val = val.substring(1, val.length);
if( val.length ) {
$(".work[data-client*='" + val + "']").animate({
opacity: 1
}, 350, function() {
// Complete
});
$(".work:not([data-client*='" + val + "'])").animate({
opacity: 0.05
}, 350, function() {
moveIt();
});
}
return false;
},
function () {
return false;
}
);
不要担心这整件事会发生什么,但是把这段代码放到回调函数中有点不对劲。几乎就像它不断循环/重复回调,所以我无法返回
(如果您想知道,基本上,菜单允许我根据某些项目的属性淡入淡出,然后我滚动到不透明度未淡出的第一个项目。)
任何帮助都将不胜感激
我找到了一个有类似问题的人,但问题还没有解决,几乎没有反馈:
非常感谢,,
迈克尔
编辑:事实上,我刚刚注意到我也无法向下滚动…所以本质上,我被卡在了它发送给我的位置。我也有这个问题,但错误/修复与选择器逻辑无关
问题是,我将点击处理程序绑定到锚上,锚多次触发scrollTo,而没有解除旧的绑定。我实现了ajax加载和重新注册事件处理程序,但没有取消注册旧的事件处理程序。修复只涉及到调用
$(selector).off()在$(selector).on(…)
,我不需要更改,因为这是我仍然想要的行为。更新:我已经找出了导致此问题的原因。我的选择器逻辑得到了不止一个元素,尽管由于等式(0)只显示了一个元素,但scrollTo正在处理多个元素。如果你有类似的问题,请小心。我更改了选择器逻辑,现在它可以工作了。