2016-07-27 2 views
0

Этот фрагмент кода работает в firefox, но не в хроме, он не прокручивается - событие клика срабатывает, но даже не переходит в его положение на теге привязки.scrollTop не работает в chrome

$(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(); 

}); 

})

ответ

1

scrollTop должен быть set with an integer, постарайтесь не добавлять + 'px'.

Например, это будет работать:

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

Если это не для вас, то еще что-то на странице блокировки прокрутки, или ваше тело/HTML не имеют высоту прокрутки больше, чем браузера.

Вы можете дополнительно протестировать с помощью ванильного JavaScript, набрав в консоли document.body.scrollTop = 200;. Если , что не прокручивает страницу, то что-то еще определенно неправильно. Возможно, расширение Chrome?

(Также светлячок UA нюхает выглядит как неприятности, но никто не просил меня :))

+0

Да я удалил, что и просто поставить номер, как 1000 и страница не прокручивается – ONYX

+0

ОК обновила свой ответ, несколько больше вещей, чтобы попробовать. –