首先,很抱歉我没有一个“最小、可验证”的测试用例。这个问题发生在Safari上,但我没有任何苹果产品。 在这个网站上,存在一个bug,导致用户在“返回”后无法再滚动页面。您可以跟随该链接,单击其中一个按钮,然后返回(通过滑动、单击按钮或使用快捷键),接着您将无法使用触摸板或鼠标滚轮滚动页面。我对可能导致这种情况的原因一无所知。 报告此问题的用户正在使用 Safari 9.1.2
简而言之:我认为答案是:你的网站代码没有问题。事实上,我认为这与硬件有关,这就是为什么许多人无法重现此问题,它只影响某些用户。我已经在从Lion/Safari 6到El Capitan/Safari 9的每个操作系统上进行了测试,使用了我的Mac和Browserstack来测试轨迹板和魔术鼠标。在每种情况下,该网站都正常运行。正如您所述,触摸板受到影响,我想补充说明任何2个手指滑动可能是确切的原因,而1个手指滑动则不会。而我说它与硬件有关的原因是:因为苹果论坛上的用户抱怨这个同样的问题,并且已经说PRAM重置是解决问题的方法。更多的苹果论坛用户表达了他们的抱怨。最后:有一件事是肯定的。我没有看到任何一个用户声称这是网站编码的结果。
我不能测试它,因为我没有OSX,但是在开发任何网站时,我从未遇到过这个问题。尽量不要依赖于body的overflow属性,让它自动适应。 如果某些内容在X轴上溢出,则表示你的结构或样式有问题(如果涉及响应式Web开发)。 如果某些内容在Y轴上溢出,则无论如何都可以滚动,即使你没有在body的样式中声明它。然后,你把box-sizing: border-box;和position: relative;声明给所有元素(*,*:after,*:before)。也删除它,不需要重新声明这些属性,可能会在处理不同元素时引起问题。 要知道html元素具有默认属性,好习惯是学习和理解它,而不是随意更改它...最后,如果你检查控制台,你会发现一些jquery错误可能会导致锁定一些CSS类或页面加载问题。1- Delete body's overflow declarations. 2- Delete * stylings (* styles must be used only to homogenize text, as font family and font width, or other few generic non-structure modificable things) 3- repair JQuery errors. 希望它能帮到你,干杯!
body {overflow-x: hidden;}
。尝试去掉它,或是其他body属性,看看是否有帮助。这可能是一个已在Safari 9.1.3中修复的bug。我在Safari 9.0.x中也无法再现此问题。 - eye-wonder