2016-09-16 117 views
15

首先,我很抱歉我没有minimal, verifiable测试用例。我遇到的问题发生在Safari上,但我没有拥有任何Apple产品。Safari浏览器重新导航后禁用滚动功能9.1.2

this website上,有一个错误,用户在导航返回后无法再滚动页面。您可以按照链接,单击其中一个按钮,返回(通过滑动,单击按钮或使用快捷方式),然后使用触控板或鼠标滚轮不能再滚动页面。我基本上无能为力,可能会造成这种情况。

所报告的这一用户使用的是Safari浏览器9.1.2

+0

只是为了确认:我可以用Safari 9.1.2在我的rMBP 15“(2015年中,OS X 10.11.6)上重现这个问题,我花了将近一个小时的时间,但找不到任何导致此问题的原因。 – BlueCola

+0

(无法测试,因为我没有Safari 9.1.2。)。在浏览器后,CSS主体属性是否在检查器中更改? 在stylesheet.css中有'body {overflow-x:hidden;}' on(line 38)。它有助于删除这个(或任何其他物体属性)吗?它可能是一个在Safari 9.1.3中已被纠正的错误。我无法在Safari 9.0.x中重现这个 –

+0

我不能从Safari 6-9重现问题 –

回答

2

简而言之:

我相信答案是:没有什么不对您的网站的代码。


事实上,我相信这是与硬件相关,这就是为什么很多人都无法重现这个问题,它不仅影响一些用户。

我已经使用我的Mac和Browserstack测试了Lion/Safari 6到El Capitan/Safari 9的每个操作系统上的网站,带有触控板和魔术鼠标。

在每种情况下,该网站都能正常运行。

正如你所说,轨道垫受到影响,我想补充一点,任何2指扫可能是确切的原因和1个手指轻扫不是。

而我之所以说这是硬件相关:因为苹果用户运行论坛都在抱怨同样的问题,并表示一个PRAM复位就是纠正问题

Swipes and scrolling stop working in Safari

越来越多的用户在苹果论坛上表达他们的投诉。

Apple users place the blame on everything from OS upgrades to system bugs and failing hardware .


中底:有一件事是肯定的。我还没有看到一位用户声称这是网站编码的结果。

+1

感谢您的测试并感谢您的信息! –

+1

我的荣幸!我们都从你的问题中获得了知识 - 干杯 –

1

我无法测试它,因为我没有带任何OSX但在开发任何网站时,我从来没有过这个问题。尽量不要依靠身体的溢出规格,让它自动。 如果某些东西在X-line中溢出,那么你的东西就是坏结构或坏样式(如果谈论响应式web开发)。 如果Y行中有东西溢出,那么即使您没有在body的样式中声明它,它仍然可以滚动。

然后你声明框大小:border-box;和位置:相对;到所有元素(*,*:之后,*:之前)。删除它也不需要重新声明这些属性,并且在处理不同的元素时可能会导致问题。 认为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. 

希望它有帮助,干杯!

+0

我一直误解为什么你需要溢出隐藏。溢出的文档说(溢出被剪切,其余的内容将被隐藏)并且经验表明它可能会导致内容不可滚动。如果需要溢出自动带来滚动条,溢出滚动使滚动条出现,有时即使不需要。 它很好,如果你长时间使用它,但它是错误的。无论如何,如果你开始使用bootstrap而不是自己做,它可能会很好。 试着做点1和2,让我们看看会发生什么。 – JoelBonetR

+0

所以,如果你不想尝试一些可能的修复工作到你的网站,你为什么问这里?正如你所说,你正在疯狂地改变全球结构的默认值,你这样做会让我觉得你不是前端开发专家。如果您了解元素呈现的方式以及为什么他们具有这些默认属性,则没有理由像您那样覆盖。正如你所说的,就像你想用记事本写诺贝尔文,但试图强制不同的字体样式和颜色。当你想要看这个,评论正文和*样式并回复这个答案。 – JoelBonetR

+0

哦,...修改不透明度不会改变z-index。是的,这是一种语言(不是真正的编程语言),你不能做某些事情。这就是使用js而不是css来执行某些特定作业的原因。我从我8年的前端开发和全栈开发经验谈起。至少你可以在你最后加载的CSS的底部添加这个:@media(max-width:991px;){body {overflow:visible;}}然后,如果有什么让你的网站不能响应,你得到滚动在x行中,您的结构中存在错误。它被称为调试或测试,测试,不要懒惰! – JoelBonetR