我与一个问题scrollTo
功能时,它是由一个jQuery所谓的animate
功能。
在这里我的代码:
$("#button").click(function(){
$("body").animate({scrollTop: 1400},"slow");
});
当我按一下按钮,闪烁体滚动之前出现。 例如,我在(滚动位置)1000,当我点击该按钮下面发生的事情:
- 在(滚动位置)1400出现页面/图像,它看起来像我已经去了(位置)1400
- 然后重新将其移动到(位置)1000,这种情况发生得这么快,看起来像一个闪烁
- 最后,滚动到1400像一个正常的滚动..
在Firefox它总是出现,有时对铬也。
我有同样的闪烁问题。 它是由在触发功能的链接散列锚引起。 用preventDefault()方法固定它:
$("#button").click(function(e){
e.preventDefault();
$("body").animate({scrollTop: 1400},"slow");
});
<a href="#" onclick="return scrollFromTop(1400, 2000);">scroll</a>
function scrollFromTop(offset, duration) {
$('body').stop(true).animate({scrollTop: offset}, duration);
return false;
});
有同样的问题......通过对click处理程序返回false固定它
通过停止这样的动画解决了这个问题:
$('body,html').bind('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function(e){ if ( e.which > 0 || e.type == "mousedown" || e.type == "mousewheel" || e.type == "touchmove"){ $("html,body").stop(); } })
在那里发现: jQuery的.animate()手动停止滚动时用户滚动?