scrollTop不能在铬工作

问题描述:

这段代码在firefox中工作,但不在Chrome浏览器中不滚动 - 点击事件触发,但不会在锚点标记上移动到它的位置。scrollTop不能在铬工作

$(function() { 
$(".menu li a").click(function(e) { 
    var value = $(this).attr('href'); 
    var id = value.substr(1, $(this).attr('href').length);    
    var px = navigator.userAgent.toLowerCase().indexOf('firefox') > -1 ? 16 : 1; 
    var target = $("a[name=" + id + "]").offset().top + px; 

    console.log($("a[name=" + id + "]")); 

    $('html, body').stop().animate({ 
     scrollTop: target + 'px' 
    }, 'slow'); 

    e.preventDefault(); 

}); 

})

scrollTop应该是set with an integer,尽量不增加+ 'px'

例如,这将工作:

$('html, body').stop().animate({scrollTop: 100}, 'slow'); 

如果它不适合你,然后别的页面上阻止滚动,或你的身体/ HTML没有滚动高度比大浏览器窗口。

您可以在控制台中输入document.body.scrollTop = 200;来进一步使用vanilla JavaScript进行测试。如果不能滚动你的页面,那么其他东西肯定是错误的。也许是Chrome扩展程序?

(也火狐UA嗅探貌似麻烦,但没人问我:))

+0

是的,我删除了,只是把一些像1000和页面不会滚动 – ONYX

+0

OK更新我的回答,几更多的事情要尝试。 –