我有一个jQuery函数,该函数删除URL中的锚点“ #categorie”,以防止网站滚动到具有该ID的部分。这在Chrome和Safari中非常完美。但是,在Firefox中,它不是,它只是一部分而已。
这是我单击的项目的html结构:
<div class="person kernteam abigael-verspoor">
<div class="person-img">
<a href="http://www.ludenstraining.nl/person1/#kernteam">
<img src="person1"/></a>
</div>
<div class="person-info">
<h3><a href="http://www.ludenstraining.nl/person1/#kernteam">Abigael Verspoor</a></h3>
<p>programmamanager / trainer / coach</p>
</div>
</div>
这是防止锚定滚动发生的jquery代码:
// right away before the browser can start scrolling!
var hash = window.location.hash,
target = hash.replace('#', '');
// delete hash so the page won't scroll to it
window.location.hash = "";
我试图通过设置一个超时功能来修复它,该功能将窗口滚动回到0 top,但这也不起作用,至少是不一致的。
要实际观看它,请访问以下链接:http : //www.ludenstraining.nl/over-ons/
在chrome和safari中,它会完美工作。在firefox中,它似乎起初起作用,但仅对第一个选项卡“ kernteam”起作用。在第二个和第三个选项卡中,您将看到它向下滚动到此人所连接的“类别”选项卡。
我感谢任何帮助!
我能够以也可以在firefox中使用的方式对其进行修改。其中最大的部分是将链接上的锚点“#”替换为“?”。
这样做可以防止页面在Firefox中滚动到具有该ID的元素。要从链接中提取值,我使用了以下方法:
var url = window.location.href;//get url
var urlsplit = url.split('?');//split url from '?'
var tab = urlsplit[1]; get the url part after '?'
它对我来说要好得多,因为您无需费力在页面加载之前删除锚跳转。另外,您也不会因为卸下锚而不必重新加载。
感谢mplunjan帮助我获得了该解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句