如何在ios设备上检测网站上的三击?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在ios设备上检测网站上的三击?相关的知识,希望对你有一定的参考价值。

我必须在移动设备上三次点击我的网站主体上显示和隐藏div我在javascript中编写的以下代码在android设备中工作正常,但它在ios中不起作用。你能帮我解决一下吗?

代码是:

window.onload = function() {

  document.querySelector('body').addEventListener('click', function(evt) {

    evt.preventDefault();
    if (evt.detail === 3) {
      document.getElementById('mmu').style.height = '100px';
    }

    if (evt.detail === 1) {
      document.getElementById('mmu').style.height = '0px';
    }

  });

}
#mmu {
  width: 100px;
  height: 0px;
  position: fixed;
  left: 0;
  cursor: pointer;
  top: 0;
  background: red;
}

body {
  height: 1000px;
  background: #eee;
  width: 100%;
  cursor: pointer;
}
<div id="mmu"></div>
答案

在iOS上,click事件无法正常启动。相反,您需要监控触摸事件,例如touchend,以检查制作了多少个水龙头。

例如,您可能会尝试检查是否在足够的超时窗口内进行了点击

TOUCH_TIMEOUT_MILLISECONDS = 500
touch_count = 0
window.onload = function () {
    document.querySelector('body').addEventListener('touchend', function (evt) {
        touch_count += 1

        setTimeout(function () {
            touch_count = 0
        }, TOUCH_TIMEOUT_MILLISECONDS);

        if (touch_count === 3) {
            document.getElementById('mmu').style.height = '100px';
        }

        if (touch_count === 1) {
            document.getElementById('mmu').style.height = '0px';
        }

        evt.preventDefault();
    });

}

根据您的要求,您可能还需要考虑从同一行动中解雇的touchendclick事件。

以上是关于如何在ios设备上检测网站上的三击?的主要内容,如果未能解决你的问题,请参考以下文章

iOS:如何检测硬件蓝牙键盘上的转义/控制键?

iOS:检测我的 SDK 是不是安装在设备上的其他应用程序上

检测移动设备上的访问[重复]

如何在 Swift 中测量 iOS 设备上的抖动量?

如何在 Wordpress 上检测基于设备的 HTML 代码?

如何以正确的方式检测 Android 设备?