如何删除浏览器自动滚动到div id?

时间:2011-12-07 18:47:05

标签: javascript jquery html css3 accordion

在我的网页上,我在中心使用一个垂直手风琴来列出一些内容。加载页面时,手风琴位于中间。但是当用户点击手风琴选项卡时,整个页面会向上滚动,使得手风琴选项卡位于浏览器的顶部。我怎么能避免这种反应。我希望用户在没有自动滚动的情况下留在页面部分本身。有没有解决方案?

当用户点击手风琴标签时,页面网址变为, http://web.com/#tab_1。但是我不能从手风琴中移除id,因为它需要ID来运行。还有其他解决办法吗?

4 个答案:

答案 0 :(得分:1)

在您的点击处理程序中,您应该阻止单击链接的默认操作(即滚动到锚点)。一些伪代码,因为我不知道你的手风琴是如何设置的:

$("#accordion a").click(function(e)) {
  e.preventDefault(); // This prevents the scrolling from occuring
  $("#accordion").activate($(this).attr('id'));
});

答案 1 :(得分:0)

onclick使用preventDefault它会解决您的问题

答案 2 :(得分:0)

我不相信有一种简单的基于CSS的方法来避免以下事实:target伪选择器带有URL片段链接的默认浏览器行为,即滚动到相关元素。正如其他人所建议的那样,你将不得不在JS中添加它。

答案 3 :(得分:0)

如果我正确理解你的问题,那就是页面在点击次数上排在最前面,我个人总是添加它以停止自动滚动。

添加脚本

<%--Magic Script that maintains position on partial rendering and click--%>
<script type="text/javascript">
    window.scrollTo = function (x, y) {
        return true;
    }
</script>