jQuery scrollTop转到目标然后汇总

时间:2013-12-28 01:24:38

标签: javascript jquery

我正在使用jQuery函数scrollTop,所以当点击具有某个类的元素时,您的位置会发生变化。这就是我所做的:

$(document).ready(function (){
    $(".paginacion").click(function() {
        $(document).scrollTop( $("#galeria").offset().top );  
    });
});

我正在浏览位于页面中间的分页菜单,我想在使用该实用程序时返回该菜单(单击具有分页类的任何元素)。

当我点击任何这些元素时,页面会向下滚动一会儿,然后向上滚动。

怎么了?

1 个答案:

答案 0 :(得分:1)

<a>标记具有默认的href锚定,它会跳转到目标ID并更改URL哈希/片段。就像@Khanh TO在评论中的例子一样。

但是如果你真的想用jQuery来处理它。一个好的解决方案是首先使用preventDefault()取消单击事件的默认执行。然后在设置scrollTop时切换到'window'而不是'document'。两者都会产生相同的效果,但所有浏览器都支持$(window).scrollTop(value)

$(".paginacion").click(function(e) {
    e.preventDefault();
    $(window).scrollTop( $("#galeria").offset().top );  
});

如果您还希望animate滚动,则只需将$(window).scrollTop()替换为:

$('html, body').animate({scrollTop: $("#galeria").offset().top});

FireFox和IE将溢出放在html级别,因此为了让animate(scrollTop)能够使用跨浏览器,我们需要包含'html'

请参阅此jsfiddle