Javascript触摸事件故障
Javascript touch events glitchy
我目前正在用Javascript创建一些滑块,用于触摸,我得到的结果并不是我所希望的。
按住其中一个滑块手柄时,它会得到一个半透明的深灰色叠加层(就像您在iOS上按住它们时的所有链接一样(。完成此操作后,无法拖动手柄。
正如您可以想象的那样,这使得它们非常难以使用。
我遇到的另一个问题是页面滚动。除非我得到近乎完美的水平滑动,否则 iOS safari 会认为我正在尝试滚动页面并停止 js。
我知道可以解决这些问题,因为jQuery mobile没有它们的滑块。我已经浏览了jQuery移动滑块的源代码,但我找不到他们如何防止这些问题。
关于我可以做些什么来解决这个问题的任何想法?
jQuery mobile的滑块 - http://jquerymobile.com/demos/1.1.0/docs/forms/slider/
问题 1 - 单击时出现灰色框:
为所有元素添加此 css:
-webkit-tap-highlight-color: rgba(0,0,0,0);
您可能还希望使用这些来停止突出显示:
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
问题 2 - 停止滚动
您需要一个用于事件 touchstart 和 touchend 的处理程序,并且需要将其添加到处理程序中。
event.preventDefault();
请注意,这也将停止滚动和缩放。如果您仍然想要缩放,则可能需要重新实现或使用其他库。
有关触摸事件的良好参考信息
教程:http://www.sitepen.com/blog/2008/07/10/touching-and-gesturing-on-the-iphone/
Apple Docs(这很好地解释了触摸和鼠标事件之间的关系(:https://developer.apple.com/library/ios/#documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 对iPad上的点击事件反应缓慢
- 事件和状态
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- 从控制器返回后Ajax启动事件激发
- javascript.点击隐藏事件故障
- Raphael悬停事件和调整大小框在第三次鼠标悬停后发生故障
- 如何从故障转移事件中获取源节点
- Javascript触摸事件故障
- 如何对触发两次的点击事件进行故障排除
- FastClick和click()事件触发故障
- 用于关键事件输入验证的Javascript正则表达式故障排除帮助