防止/停止发生自动锚链接

Jar*_*ish 9 javascript jquery

我需要在使用link.html#idX和<div id ="idX"/>时阻止浏览器中的自动滚动行为.

我试图解决的问题是我试图通过检测网址中的锚来尝试在页面加载上执行自定义滚动功能,但到目前为止还无法阻止自动滚动功能(特别是在Firefox中) .

有任何想法吗?我在$(window).load()处理程序上尝试过preventDefault(),它似乎不起作用.

让我重申这是针对未滚动的页面中未点击的链接; 它适用于滚动页面加载的链接.想一想点击链接中带有#anchor的其他网站的链接.什么阻止自动滚动到ID?

每个人都明白我不是在找一个解决方法; 我需要知道是否(以及如何)可以防止在页面加载时自动滚动到#anchors.


注意

这不是真正的问题的答案,只是一个简单的竞争条件式克鲁格.

使用jQuery的scrollTo插件滚动回页面顶部,然后使用自定义内容恢复滚动.如果浏览器/计算机足够快,页面上没有"闪烁".

我觉得这很脏......

$(document).ready(function(){

    // fix the url#id scrollto "effect" (that can't be
    // aborted apparently in FF), by scrolling back
    // to the top of the page.
    $.scrollTo('body',0);

    otherAnimateStuffHappensNow();

});
Run Code Online (Sandbox Code Playgroud)

幸得wombleton指点出来.谢谢!

wom*_*ton 6

似乎是我可以看到的唯一选项:

$(document).ready(function() {
  $.scrollTo('0px');
});
Run Code Online (Sandbox Code Playgroud)

它不会自动滚动到类.

因此,如果你用独特的类来识别你的div,你会在查找元素时失去一点速度,但会获得你所追求的行为.

(顺便说一下,谢谢你指出了滚动到id的功能!从来不知道它存在.)

编辑: