- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
当将事件监听器与 touchmove 和 touchend 事件一起使用时,除非我首先使用 event.preventDefault();,否则我无法让 Android 版 Chrome 确认这些事件;在代码的前面。如果我不想阻止默认滚动功能,是否可以使用任何其他解决方法让 Chrome for Android 确认这些事件?
示例代码:
$(document).ready(function () {
// Bind touch event listeners.
var elem = $('html').get(0);
elem.addEventListener('touchstart', function (e) { console.info('"touchstart" detected. Coordinates - ' + getCoord(e)); });
elem.addEventListener('touchmove', function (e) { console.info('"touchmove" detected. Coordinates - ' + getCoord(e)); });
elem.addEventListener('touchend', function (e) { console.info('"touchend" detected. Coordinates - ' + getCoord(e)); });
function getCoord(e) {
var touch = false;
if (e.touches.length > 0) {
touch = e.touches[0];
} else {
touch = e.changedTouches[0];
}
if (touch) {
return 'x: ' + touch.pageX + ', y: ' + touch.pageY;
}
}
示例 fiddle 在这里:http://jsfiddle.net/jQ2VS/1/
最佳答案
如果 Google Chrome 认为用户正在平移/滚动并且您没有调用 event.preventDefault( )
。
假设您想拦截水平触摸事件并让垂直触摸事件引起平移/滚动,解决方法是:
touchstart
上,将坐标存储在变量中,并将 iteration
设置为 0。touchmove
事件,将 iteration
设置为 iteration
+1。iteration
等于 4(只是我发现在我的设置中可靠的“魔数(Magic Number)”)时,计算 x 轴和 y 轴的总触摸偏移增量。编辑:在移动设备上你只会收到一个没有 event.preventDefault() 的 touchmove缺点是用户只能向左/向右滑动或向上/向下滚动。
关于Javascript:除了使用 event.preventDefault() 之外,还有什么解决方法可以让 Chrome for Android 触发 touchmove 和 touchend 事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20412982/
我在 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 事件时,我可以获得当前触摸点的列表。然而,这对于检测手势并不是很有用。我喜欢获取触摸事件的历
我是一名优秀的程序员,十分优秀!