【发布时间】:2014-06-28 16:31:57
【问题描述】:
我尝试了很多天来解决以下问题。
我有一个位于页面顶部的菜单,需要使用swipedown 事件打开它(我使用的是 Hammer.js jQuery 版本)。
问题是,每次我尝试使用滑动进行交互时,我要么滚动页面 (swipeup),要么像 following question 中描述的那样将页面拉下。
这是我迄今为止尝试过的:
body 元素上的overflow: hidden; 带有带有overflow: auto 的内部容器,在顶部元素上滑动仍会触发文档滚动。
在文档上设置 preventDefault 还会禁用 DOM 层次结构中的较低元素事件,因此我在页面中没有滑动事件。
还尝试在事件发生时在实际元素上使用stopPropagation,以防止事件链冒泡,结果导致对象不响应事件(滑动)并且文档滚动没有问题.
任何想法如何在仅影响元素的特定元素上使用常见手势(例如向下滑动/向上滑动)时仍然保持页面滚动?
这是一个使用 JSFiddle 的example,以更好地演示该问题。
会欣赏想法/想法
【问题讨论】:
-
我知道您可能正在按照规范进行设计,但请考虑向下滑动是否是打开此菜单的最佳方法。做用户测试。可以发现吗?简单的点击工作会更好吗?
-
目前我使用的是
tap手势,尽管swipe会更合适,因为打开时菜单会从顶部滑动。 (滑动似乎是正常的手势) -
获取一些关于哪个最好的数据 - 进行一些“水冷却器测试”。如果您需要滑动工作,则需要在整个页面上进行,而不仅仅是菜单目标
-
事情是,只有在 iOS 设备中,才会导致滑动事件始终“冒泡”到文档(html 或正文),而 Android 设备接受了他们的命运:/
标签: javascript jquery css ipad