- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一个基于 Web 的应用程序,其中包含一个用户可以用手指上下滚动的组件。我使用事件的 preventDefault
方法来防止触摸移动在 iOS 设备上移动整个屏幕的默认行为。
不幸的是,这在我今天早上刚升级到的 iOS 5 中似乎不再有效。我不得不假设这在 iOS 5 中的做法有所不同,但我还没有找到提供说明的资源。
更新 #1:我无法找到我的特定问题的答案,但我可以稍微调整我的代码以使用 -webkit-overflow-scrolling
样式(设置到“触摸”的值)并实现时髦的惯性滚动功能(其中内容滚动速度更快,具体取决于您的滑动速度,如果它触及边界,将“橡皮筋弹回”。看起来很酷...
更新#2:我现在有另一个奇怪的问题。由于某些奇怪的原因,溢出滚动行为有时会混淆,因此您必须在包含元素上左右拖动手指才能使其内容上下移动。我还没有弄清楚为什么会发生这种情况 - 有没有人有任何想法?
最佳答案
我找到了一个非常简单的解决方案。当事件击中允许滚动的元素时,只需标记该事件。在文档的事件监听器上,只需检查是否设置了标志,如果未设置标志,则仅停止事件:
this.$scrollableEl.on('touchmove', function(event){
event.comesFromScrollable = true;
// when you have containers that are srollable but
// doesn't have enough content to scroll sometimes:
// event.comesFromScrollable = el.offsetHeight < el.scrollHeight;
});
$(document).on('touchmove', function(event){
if (!event.comesFromScrollable){
event.preventDefault();
}
});
你也可以使用 event.stopImmediatePropagation相反,因此您不需要文档元素上的 eventListener,但这会破坏 zepto.js tap
在我的例子中:
this.$scrollableEl.on('touchmove', function(event){
event.stopImmediatePropagation();
});
关于javascript - 如何防止 iOS 5 中 touchmove 事件的默认行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7756684/
我在 Swiper.js 元素下面有一些内容。我正在尝试取消绑定(bind) slider 上的 touchmove 事件,以便在移动设备上,用户在到达幻灯片的最后一张幻灯片时可以自由地向下滚动页面。
我在 View 中实现了 Touchs 方法。TouchMoved 方法被调用四到五次,触摸会自动取消。 你能告诉我原因吗?提前致谢 最佳答案 如果你在你的类(class)中添加了任何手势识别器,那么
我正在尝试实现一个重写的 TouchMoved 函数,以使 SKSpriteNode 能够由用户移动。但是,我必须非常缓慢地移动节点,以便它在拖动时跟随我的触摸。此外,后台还有三个 SKSpriteN
我最初的假设是 touchmove 在每个像素移动时触发,但在我的测试中它会根据移动速度而变化。它的行为是否有定义的规范? 最佳答案 touchmove 事件是 W3C touch events sp
function ontouch(el, callback) { var touchsurface = el, // get element for scrollLeft st
我正在尝试创建一种插件或事件,通过在 ipad 上轻扫 css 转换(移动)元素。为此,我目前使用的是 cocco 出色的工作小代码片段: (function(D){ var M=Math,abs
我是 iOS 开发新手。我目前需要开发一个 ForceTouchGestureRecognizer,在用户开始触摸时激活 2 秒 但是,在添加 holdFor > minimumPressDurati
所以,我在让元素在 touchmove 事件上移动时遇到了问题。 这是我的代码: this is long Text this is long Text this is lo
我有 svg 元素,它们根据 mousemove 事件中的鼠标位置进行更新。我尝试通过将 touchmove 绑定(bind)到元素来执行相同的操作,但是当移动元素时,touchmove 停止工作,并
我使用此代码来禁用和启用触摸: jQuery(document).ready(function(){ jQuery("body").on("touchmove", false); jQuery('
我有一个 div,用于触摸事件以扩展我正在构建的移动菜单。到目前为止,这是我的代码: $("#" + obj.mobileButtonID).on({ touchmove: function
我像这样使用 touchmove: document.getElementById("slider").addEventListener("touchmove",alert("touch"),fals
我有组件,我试图在其中做下一件事: disableBackgroundScroll() { const container = document.getElementsByClassNam
我有一个元素相对于移动设备上的用户触摸(即用手指在屏幕上拖动它)移动(通过改变它的 leftmargin)。 我注意到在 touchmove 事件期间(我相信在 touchstart 和 touche
我将 touchmove 事件绑定(bind)到一个包含 slider 图形的 div,并且需要以某种方式计算用户上下拖动了多少像素,因此我可以调整 slider 图形(真的不想为此使用任何库,因为它
我想通过触摸 UIBarButtonItem 并移动来创建滑动 UIToolbar。我阅读了一些主题,发现我必须实现 TouchMoved。但是哪里?我唯一发现它是 UIButton 的地方,我位于
我想在移动设备上使用“position:fixed”(我有一个 Android 设备)——但这个不存在。 我通过创建两个 div 来伪造它,这两个 div 的高度总和为屏幕的高度(使用 JS),并将
tl;博士 显示第二个 Canvas 元素意味着用户失去触摸 - 我不希望用户再次触摸屏幕 我正在构建一个 HTML5 Canvas 游戏(游戏显示一张图片,将其切成拼图 block ,然后以随机顺序
我遇到了一个问题,试图找到一种方法来使一段基于鼠标事件的代码也可以与触摸事件一起使用。它在鼠标上工作正常,但在触摸设备上 react 很奇怪。 我必须捕获 mousedown 或 touchstart
我正在尝试学习如何使用touchmove event在浏览器中检测多点触控手势。当捕获 touchmove 事件时,我可以获得当前触摸点的列表。然而,这对于检测手势并不是很有用。我喜欢获取触摸事件的历
我是一名优秀的程序员,十分优秀!