在后退按钮上,为什么Firefox直接跳到我以前的滚动位置而不是动画

On back button, why does Firefox jump straight to my previous scroll positions rather than animating

本文关键字:滚动 位置 动画 按钮 为什么 Firefox      更新时间:2023-09-26

请访问演示:http://96.0.13.132

点击一下,现在点击后退按钮。在webkit浏览器中,你会被动画化回以前的"状态",而在Firefox中你会跳回。为什么会这样?如何让Firefox表现得更像webkit?

我使用的是jQuery、jQuery地址插件和jQuery ScrollTo插件。

除了截取后退按钮,然后应用jQuery想要实现的效果外,这很可能是Firefox、Opera(在Windows XP上的v11.60中测试)和。。无法在Internet Explorer 8中进行测试,因为

'console' is undefined in erny.js, Line: 1142

这使得浏览器变成了白色屏幕。它几乎加载了页面,然后立即完全破坏了网站。您可以通过使用封装任何console命令来解决此问题

if (console) { /** your command **/ }

这是一个很好的做法,因为你应该善待没有控制台或FireBug的浏览器™。。。但你也有一个非常突出的alert,它告诉访问者

为了获得最佳观看体验,请使用Firefox、Chrome或Safari


所以我要说的是,在回到主要的视觉问题之前,你应该先更多地关注网站可用性的这些方面。除非你100%确定只有Safari用户会访问你的网站,否则你真的不应该在访问者第一次进入你的网站时向他们显示弹出窗口或错误,从而让他们感到不受欢迎。

我认为问题是我滚动到id与哈希匹配的页面,而默认的跳转到id行为覆盖了绑定到后退按钮的动画。

例如,我的链接是"#about",而我有一个id为"about"的元素,所以在我可以动画滚动到它之前,Firefox直接滚动到它。将元素的id更改为"page_about"似乎可以解决这个问题。

您可以在此处查看生产站点:http://www.erny.com