[js][填坑] 简单模拟touch 滑动、长按

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title>Touch</title>
        <meta name="viewport" content="width=device-width, user-scalable=no">
    </head>

    <body>

        <div id="output" style="min-height:300px;overflow: auto;background: lightblue;">
        </div>
        <script type="text/javascript">
            (function() {
                var output = document.getElementById("output");
                var a, b;

                function handleTouchEvent(event) {
                    if (event.touches.length == 1) {
                        switch (event.type) {
                            case "touchstart":
                                //event.preventDefault();  //防止 touchend 不生效,貌似没用
                                output.innerHTML = "Touch started (" + event.touches[0].clientX + "," + event.touches[0].clientY + ")";
                                a = event.touches[0].clientY;
                                break;
                            case "touchend":
                                output.innerHTML += "<br>Touch ended (" + event.changedTouches[0].clientX + "," + event.changedTouches[0].clientY + ")";
                                break;
                            case "touchmove":
                                //event.preventDefault(); //prevent scrolling
                                output.innerHTML += "<br>Touch moved (" + event.changedTouches[0].clientX + "," + event.changedTouches[0].clientY + ")";
                                b = event.touches[0].clientY;
                                if ((a - b) > 20) {
                                    alert('boom'); //模拟向上滑动
                                }
                                break;
                        }
                    } else if (event.touches.length == 0) {
                        //chrome touchend 不生效,用 event.touches.length == 0 模拟 touchend
                        output.innerHTML += "<br>Touch ended (" + event.changedTouches[0].clientX + "," + event.changedTouches[0].clientY + ")";
                    }
                }
                output.addEventListener("touchstart", handleTouchEvent, false);
                output.addEventListener("touchend", handleTouchEvent, false);
                output.addEventListener("touchmove", handleTouchEvent, false);
            })();
        </script>
    </body>

</html>

 

转载于:https://www.cnblogs.com/qingmingsang/articles/5197979.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值