如何正确#锚滚动的位置在Firefox中,当按ENTER在URL栏
How to correct #anchor scroll location in Firefox when ENTER is pressed in URL bar
我在页面顶部有一个浮动菜单,所以所有的锚滚动位置都是给定的值。我通过一个非常简单的jQuery代码在Javascript中纠正这个问题:
if (window.location.hash !== '') {
setTimeout(function() {
var jumpPoint = $(window.location.hash).offset().top;
var menuHeight = $('#menu').height();
$(document).scrollTop(jumpPoint - menuHeight);
}, 10);
}
这在Firefox和Chrome中都能很好地工作,但是Firefox有一个我不知道如何解决的问题。
当用户点击一个链接或打开一个新选项卡时,Firefox运行JS并通过。scrolltop()来固定滚动位置。
然而,当用户在一个已经打开的页面上点击ENTER时,Firefox不会重新运行JS,它只是做一个快速的锚跳转。该跳转到达错误的位置,因为它不是由JS代码固定。Chrome不会显示这样的行为,因为即使在已经打开的页面上按ENTER键,它也会重新运行JS。
$(window).on('load hashchange', function(){
var offset = $(window.location.hash).offset();
if (offset) $(document).scrollTop(offset.top - $('#menu').height());
});
相关文章:
- 当按下一个键时,请多次按下不同的键
- JavaScript:在调用函数的文本输入上按enter键
- 当按下箭头键时,我的图像以一种奇怪的方式跳跃(HTML+JS)
- 当用户在输入字段上按 Enter 时如何运行函数
- 当焦点在TextArea上时,按enter键提交表单
- 输入代码,当用户按Enter键时更改显示价格
- 当按下Enter键时,禁止在html中提交表单
- 当用户在IE8中按enter键时,我如何阻止经典的asp页面提交表单
- 当我在不同的文本输入上按enter键时,如何使表单提交不同的按钮
- 当你在网站上按F5而不是按enter时,图像消失了
- 创建
当您按Enter时 - 当我按enter键时,我得到的是isNaN,但值是一个数字
- 当按下enter键时,如何将焦点移到下一个字段
- 按钮点击工作正常,但不希望的行为,当按下enter提交表单
- 当按下ENTER键时,强制表单发送某些提交按钮(当有多个时)
- 如何正确#锚滚动的位置在Firefox中,当按ENTER在URL栏
- 当只在firefox中按enter键时,Jquery验证器警报会被多次触发
- 当按下enter键时调用javascript函数
- 当按下ENTER键时,表单不发送到服务器
- 在文本框中,当我按ENTER提交表单时,当我按shift+ENTER插入新行