对于某些网页,我们使用iPhone的左右滑动功能来调出菜单。现在有了iOS7,他们引入了通过左右滑动来回退浏览器历史记录的上一页和下一页的功能。
但是,是否有一种方法可以针对特定页面禁用它,以免在滑动操作时出现冲突行为?
对于某些网页,我们使用iPhone的左右滑动功能来调出菜单。现在有了iOS7,他们引入了通过左右滑动来回退浏览器历史记录的上一页和下一页的功能。
但是,是否有一种方法可以针对特定页面禁用它,以免在滑动操作时出现冲突行为?
Answers:
不,这是在操作系统级别完成的,并且网页没有任何回调
请参阅此有关iOS7中的野生动物园更改的摘要,这可能会导致您的网站出现问题(包括此滑动手势)
我不得不使用2种方法:
1)CSS仅适用于Chrome / Firefox
html, body {
overscroll-behavior-x: none;
}
2)Safari的JavaScript修复
if (window.safari) {
history.pushState(null, null, location.href);
window.onpopstate = function(event) {
history.go(1);
};
}
随着时间的推移,Safari将实现overscroll-behavior-x,我们将能够删除JS hack
touchmove
事件检测滑动手势,并且仅在没有紧随其后的情况下才执行上述代码。应该有可能。
overscroll-behavior-x: none;
在iOS 13上的Chrome上进行了测试,但对滑动导航行为没有任何影响。在左边缘向右滑动会返回(即使这是标签历史记录中的第一页,它仍会返回主屏幕)。