为什么不滚动到href转到我想要的位置?

时间:2016-06-22 16:11:55

标签: javascript jquery html anchor

我正在尝试链接到页面中的div,我要求window.scrollTo(0, $(this.hash));转到div所在的位置。

当我调试它时,它是正确的,但是当我在window.scroll中使用它时,它会转到页面顶部。为什么不去正确的位置?

$(document).ready(function() {
    $('a').on('click', function(e){
        e.preventDefault();
        // console.log(this.hash);
        console.log(e.currentTarget.href.indexOf('#'));
        console.log($(this.hash));
        console.log(window.pageYOffset);
        console.log(window.location.hash);
        if(e.currentTarget.href.indexOf('#') != -1){
            // console.log(window.location);
            window.scrollTo(0, $(this.hash)); //the scrollY should be the hash location
            console.log($(this.hash));
        }
        return false;
    });
});

1 个答案:

答案 0 :(得分:1)

我认为您误解了window.scrollTo的所作所为。您可以在此处找到文档:http://www.w3schools.com/jsref/met_win_scrollto.asp

它基本上接受xPos和yPos作为参数。因此,您可以执行window.scrollTo(0, $(this.hash).offset().top)之类的操作,也可以执行$(window).animate({scrollTop: $(this.hash).offset().top})

如果有帮助,请告诉我!