无论是 touchstart 还是 click 都会有延迟;并且快速点击 10 次,大约只会生效 5 ~ 6 次。
iOS 12 下就不会。 会不会和新加的触感触控有关?
<!doctype html> <meta name="viewport" cOntent="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover" /> <div id="app"> <div class="count-wrap"> <div>当前数量:<span id="num"></span></div> <div id="btn">更新数量</div> </div> </div> <script> var i = 0 function setNum() { document.getElementById('num').innerHTML = i } setNum() document.getElementById('btn').Onclick= function() { i += 1 setNum() } </script> <style> * { margin: 0; padding: 0; } #app { padding: 20px; } .count-wrap { margin-top: 40px; } #btn { width: 6em; padding: 0.3em; border: 1px solid #ccc; border-radius: 2px; text-align: center; margin-top: 1em; background-color: #f0f0f0; /* -webkit-tap-highlight-color: transparent; */ user-select: none; } #btn:active { background-color: #fafafa; } </style>
![]() | 1 anjianshi OP |
2 unifier 2019-09-24 12:16:41 +08:00 好像确实有类似的情况,我的感觉是有时候点链接一次没效果,得点第二次才能开始打开新网页 |
![]() | 3 oIMOo 2019-09-24 15:16:07 +08:00 ![]() 慢速点击(两次间隔较长)没有问题。 然而快速点击就会复现。 |
![]() | 4 redbuck 2019-09-24 16:11:57 +08:00 ![]() 加 touch-action: manipulation; 试试 |
![]() | 5 anjianshi OP |
![]() | 6 redbuck 2019-09-24 17:07:13 +08:00 看了下你的 demo,这个测试不太合理啊. 试试这个. 我测试是不存在 300ms 延迟的. 点击齿轮可以打开控制台 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" cOntent="width=device-width,initial-scale=1.0,user-scalable=no"> <script type="text/Javascript" src="https://cdnjs.cloudflare.com/ajax/libs/eruda/1.5.8/eruda.min.js"></script> <title>Title</title> </head> <body> <button id="btn">点击</button> <script type="text/Javascript"> eruda.init(); const btn = document.getElementById('btn'); btn.addEventListener('touchstart', function () { console.time('click'); }); btn.addEventListener('click', function () { console.timeEnd('click'); }); </script> </body> </html> ``` |
![]() | 7 anjianshi OP @redbuck touchstart 本身都被延迟触发了的。这个和以前的 300ms 情况不太一样。 我的那个演示页面,ios12 下,连续点击 10 下计数就是 10,ios13 下就是 5 |
![]() | 8 anjianshi OP http://anjianshi.net/touch3.html 这个版本改成监听 touchstart 了 |
![]() | 9 redbuck 2019-09-24 17:28:34 +08:00 |
![]() | 10 chairuosen 2019-09-24 17:29:02 +08:00 实验了,是真的 |
![]() | 12 icanfork 2019-09-24 17:31:40 +08:00 ![]() iOS 13.1 已经修好了 |
![]() | 13 anjianshi OP 嗯。影响不是很大,不过像数字小键盘之类的组件点起来会有点卡。 |