使用动画-scrollTo jQuery的时候闪烁(jQuery flicker when usin

2019-06-24 11:44发布

我与一个问题scrollTo功能时,它是由一个jQuery所谓的animate功能。

在这里我的代码:

$("#button").click(function(){
    $("body").animate({scrollTop: 1400},"slow");
});

当我按一下按钮,闪烁体滚动之前出现。 例如,我在(滚动位置)1000,当我点击该按钮下面发生的事情:

  1. 在(滚动位置)1400出现页面/图像,它看起来像我已经去了(位置)1400
  2. 然后重新将其移动到(位置)1000,这种情况发生得这么快,看起来像一个闪烁
  3. 最后,滚动到1400像一个正常的滚动..

在Firefox它总是出现,有时对铬也。

Answer 1:

我有同样的闪烁问题。 它是由在触发功能的链接散列锚引起。 用preventDefault()方法固定它:

$("#button").click(function(e){
    e.preventDefault();
    $("body").animate({scrollTop: 1400},"slow");
});


Answer 2:

<a href="#" onclick="return scrollFromTop(1400, 2000);">scroll</a>

function scrollFromTop(offset, duration) {
    $('body').stop(true).animate({scrollTop: offset}, duration);
    return false;
});

有同样的问题......通过对click处理程序返回false固定它



Answer 3:

通过停止这样的动画解决了这个问题:

 $('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()手动停止滚动时用户滚动?



文章来源: jQuery flicker when using animate-scrollTo