Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止触摸设备延迟300毫秒_Javascript_Ios_Web Applications_Touch - Fatal编程技术网

Javascript 防止触摸设备延迟300毫秒

Javascript 防止触摸设备延迟300毫秒,javascript,ios,web-applications,touch,Javascript,Ios,Web Applications,Touch,安卓和iOS设备内置300毫秒的延迟来捕获双击(说到用户体验,谁会在网站上使用它?!) 我想摆脱这种延迟&读了很多关于这个主题的文章,但仍然不明白为什么这个简单的代码不是“OK”或者会破坏用户体验: $('a').bind('touchend', function (e) { e.preventDefault(); this.click(); }); 对我来说,它似乎工作得很完美,但我确信有理由不应该这样做。谢谢你给我指明了正确的方向 简短回答:A单击(在移动设备中)希望您从您

安卓和iOS设备内置300毫秒的延迟来捕获双击(说到用户体验,谁会在网站上使用它?!) 我想摆脱这种延迟&读了很多关于这个主题的文章,但仍然不明白为什么这个简单的代码不是“OK”或者会破坏用户体验:

$('a').bind('touchend', function (e) {
    e.preventDefault();
    this.click();
});

对我来说,它似乎工作得很完美,但我确信有理由不应该这样做。谢谢你给我指明了正确的方向

简短回答:A
单击(在移动设备中)希望您从您结束的地方开始。
touchend
允许您从任何地方开始

现在和其他库似乎处理的不仅仅是链接,比如按钮点击、表单交互等等,所以可能也会遗漏一些边缘案例


但至于“你的钱赚大钱”,你的东西很管用;-)

这个简单的代码表示,当触摸(拖动)事件在链接上结束时,触发该链接上的事件“单击”。如果用户在屏幕上拖动手指滚动页面,这样的拖动结束于链接上,链接将意外触发。这将破坏用户体验(UX)

消除延迟的标准方法是使用CSS属性。在我写这篇文章时,Firefox默认情况下仍然不支持它(
about:config
has-flag),Safari也不支持它。MSIE、Chrome和Android浏览器都已经在所有平台上支持这一功能

简言之:

/* Disable double-click to zoom on links, input fields
   and buttons to improve responsiveness */
a, input, button
{
    touch-action: manipulation;
}

我想向您指出正确处理此问题的方法谢谢-但我在这里读到:“在内部,FastClick使用document.createEvent在浏览器触发touchend后立即触发合成单击事件。然后,它会抑制浏览器在此之后创建的其他单击事件。”-那么,我的代码示例的实际好处或区别是什么?您的解决方案是否在不同的平台/版本上工作?请记住,在iOS(也可能是Android)上,双击可用于缩放页面。用户期望如此。此外,您还应该确保您的代码不会对滚动/拖动事件或长时间点击(通常显示一个上下文菜单,允许“在后台打开”之类的操作)产生意外行为。最后,在启用辅助功能的情况下测试站点。启用画外音时,只需点击一次即可选择,双击(页面上的任何位置)即可激活,尽管在这种情况下,您的页面可能永远看不到原始点击。@Dave我同意您的看法,您有一些正确的观点。但是,在该页面上完全禁用缩放功能,它是一个响应迅速的站点,并且在zoom=1时可以完美地显示。我将不得不研究滚动/拖动,谢谢。可访问性是一个问题,这是真的,但是没有一个(沉重的)用于禁用延迟的框架能够解决这个问题,它们怎么可能呢?如果你想在第一次点击时直接采取行动,双击是不可能的,对吗?