问题标签 [touchstart]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1880 浏览

javascript - 当包裹在 iframe 中时,touchstart 处理程序会弄乱文本输入的焦点

我正在开发一个 phonegap 应用程序,该应用程序使用 iframe 嵌入已经对移动设备友好的 web 应用程序。在 webapp 中有一个搜索功能,它聚焦于一个显示虚拟键盘的文本字段。到目前为止一切都很好...

但是,我正在使用一个库,该库在文档(iframe 内的那个)上注册了一个 touchstart 侦听器。因此,如果在虚拟键盘显示用户触摸文档时,键盘将停止工作。

从 ipad(或 XCode 中的 ipad 模拟器......我在 7.0.3 上测试过)转到此处并按照说明操作:https ://s3.amazonaws.com/ypassets-andy/app-frame.html

有趣的是,如果您不将其包装在 iframe 中,键盘不会损坏。转到此处:https ://s3.amazonaws.com/ypassets-andy/app.html并按照说明查看它不会中断。

我一直在努力解决这个问题,但不知道如何让这件事发挥作用。作为参考,这些堆栈交换帖子似乎相关,但我无法解决它们的问题:

感谢您的任何想法!

安迪

0 投票
1 回答
635 浏览

javascript - touchstart 不能再滚动了

我想在不禁用父级滚动的情况下添加touchstart事件。li

目前,它有效。我有滚动timeline,我可以点击li

添加时touchstart,我可以单击其中一个li,这比click在手机上要好。但问题是,我不能再滚动了timeline...

我可以区分 touchstart、长按、touchmove 或类似的东西吗?

我想使用:

0 投票
1 回答
301 浏览

jquery - Jquery touchstart 可以工作,但不能向左滑动

以上是我对 jquery 的包含语句。我对 touchstart 和 swipeleft 有相同的事件侦听器。touchstart 以某种方式工作,但是 swipeleft 中的一个简单的 alert() 失败了。任何原因 ?

0 投票
0 回答
104 浏览

jquery - touchstart 事件没有弹出键盘

我有一个项目,我想在元素的焦点上自动弹出键盘。

我已将 touchstart 事件绑定到元素。元素获得焦点,但键盘没有弹出。

我尝试过延迟。但仍然没有运气。

这是我尝试过的代码。

任何帮助,将不胜感激。

0 投票
1 回答
3943 浏览

javascript - 触摸事件“touchstart”在 Mobile Safari 上返回不正确的位置。解决方法?

我正在开发一个 HTML5 Canvas 项目,在为移动设备添加多点触控支持的同时,我似乎在 iOS 7.1 的 Mobile Safari 上遇到了问题。

用户与我的应用程序交互的主要方式是单击和拖动。在桌面上,我将适当的鼠标事件侦听器添加到我的画布......

...让这些事件处理程序计算鼠标位置并调用一个更通用的函数,该函数只接受事件的 X 和 Y 位置...

...一切都很好。我设计了这种抽象级别,以便轻松扩展到其他输入法。所以现在我尝试使用 Touch API 来扩展它。首先,我将我的处理程序添加到鼠标处理程序旁边的画布中......

...然后添加我的瘦事件处理程序以抽象出触摸事件...

...这就是我遇到麻烦的地方!你可以看到事情变得有点毛茸茸但效率低下,我认为我正确使用了一切。问题是getTouchPos(evt)似乎无法获得正确的 X、Y 位置touchstart。在我第一次触摸时,我的位置为 0,0。如果我拖动手指,touchmove多次开火并且报告的 X、Y 坐标看起来不错。如果我抬起手指,touchend就会着火,我也会得到正确的位置。但是,如果我再次触摸,touchstart触发而不是我触摸的位置,我会得到我最后一次触摸结束的 X,Y 坐标!

我已经使用了调试器,果然,陈旧/未初始化的值就在我在事件数据中获得的 Touch 对象中。我在做任何明显错误的事情吗?我不明白为什么我似乎从touchstart事件中得到了错误的坐标。我可以做些什么来解决这个问题?我可以使用其他来源来获得正确的位置吗?对事件顺序的细微调整?

如果您想运行一些浏览器内调试,这里是完整代码的在线演示的链接。

并提前感谢您的帮助。

0 投票
0 回答
518 浏览

javascript - jQuery 在 touchstart 上启用功能,但不使用 touchmove 事件

我有一个响应式下拉菜单,仅在触摸或单击时打开,然后在单击或触摸菜单外的任何位置时关闭。如果移动用户只是想进一步向下滑动页面,则会出现问题,一旦他们触摸滚动,菜单就会关闭。我希望它仅在触摸菜单外而不是滚动(touchmove)时关闭。

这是我目前拥有的 js,即使只是试图滑动屏幕,它也会在任何类型的触摸事件上关闭菜单。如果有人尝试通过触摸滚动,我不希望此功能发生:

0 投票
1 回答
9440 浏览

javascript - 未捕获的类型错误:无法读取未定义的属性“pageX”

我正在修补toucheventsjs。我在eclipse的logcat中遇到了这个错误。

如果我删除 in 中的评论iftouchmove坐标弹出。但是,如果它被注释,我的 logcat 中的错误就会出现。

0 投票
1 回答
171 浏览

javascript - iPhone上的javascript点击功能

我有以下脚本

单击顶层后,将显示一个子级菜单。html结构的一个例子是;

这在台式机上效果很好,但在 iPhone/iPad 等上它不起作用。在网上搜索后,我意识到这是因为这些设备将第一次按下视为悬停。

但问题是,我尝试了一些常见的建议,但没有运气。我试过了;

添加 cursor:pointer 指向 css 并在单击后尝试 touchstart。

还有其他人可以建议尝试吗?

编辑: 认为我越来越近了。我已经稍微改变了脚本(上面编辑过),现在如果你按住菜单项直到 iPhone 弹出询问你想如何打开页面的消息,子菜单下面就会出现。然后,一旦出现,单击顶部菜单即可无缝运行。

有没有人知道为什么初始点击不能正常工作?

0 投票
0 回答
154 浏览

javascript - notch的Minecraft js代码中的鼠标处理代码在哪里?

当我在这里查看 Notch 的我的世界演示时- 我可以使用触控板在视口上拖动并进行透视变换。

当我在这里查看 David Nolen 的 ClojureScript 演示版本时- 这不会发生。(但它非常令人印象深刻)。

我的问题是:这是如何处理输入事件的?(有什么特殊的js技巧吗?)

例如 - 当我查看这段代码时- 我看到:


编辑:有些人质疑这种行为,并说他们无法使用鼠标复制它。很公平——我也不能用鼠标点击来重现它。我录制了一段使用触控板拖动视口的视频

0 投票
3 回答
2265 浏览

javascript - 在 mousedown / touchstart 上获取相对于父级而不是视口的位置

如何,在mousedown或上touchstart,我可以得到鼠标相对于它发生的容器或元素的位置或在它发生的容器或元素内的位置。

所以,我知道我可以从事件pageX/YclientX/Y触摸中获取原始事件。但这是与整个视口相比的定位。这个 div 是绝对定位的,所以我怎样才能让它定位在其容器的边界内(绝对定位)。

所以这有效:http: //jsfiddle.net/Fb6An/

这是代码:

除了它在我正在处理的整个网站上的某些元素中不起作用。在更靠近屏幕右边缘的元素上,它看起来比实际鼠标位置更靠右和更低。在左侧的元素中,它工作正常。

所以我想知道如何在元素中获得位置并在那里设置 .ripple 样式?