美文网首页
自定义tap

自定义tap

作者: 浮生弱梦 | 来源:发表于2021-08-30 10:56 被阅读0次
    
    //自定义tap
    $(document).on("touchstart", function(e) {
        if(!$(e.target).hasClass("disable")) $(e.target).data("isMoved", 0);
    });
    $(document).on("touchmove", function(e) {
        if(!$(e.target).hasClass("disable")) $(e.target).data("isMoved", 1);
    });
    $(document).on("touchend", function(e) {
        if(!$(e.target).hasClass("disable") && $(e.target).data("isMoved") == 0) $(e.target).trigger("tap");
    });
    
    <!DOCTYPE html>
        <html lang="en">
    
        <head>
            <meta charset="UTF-8">
            <meta name="viewport"
                content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
            <title>Title</title>
            <style>
                body {
                    margin: 0;
                    padding: 0;
                }
    
                .box {
                    width: 200px;
                    height: 200px;
                    background: pink;
                    float: left;
                }
            </style>
        </head>
    
        <body>
            <div class="box"></div>
    
            <script>
                window.onload = function () {
                    /*使用tap事件*/
                    /*1. 响应的速度比click要快   150ms */
                    /*2. 不能滑动*/
                    // 封装tap事件
                    var bindTapEvent = function (dom, callback) {
                        /*事件的执行顺序*/
                        /*在谷歌浏览器模拟看不到300ms的效果*/
                        /*在真机上面才能看看到延时效果*/
                        var startTime = 0;
                        var isMove = false;
                        dom.addEventListener('touchstart', function () {
                            startTime = Date.now();
                        });
                        dom.addEventListener('touchmove', function () {
                            isMove = true;
                        });
                        dom.addEventListener('touchend', function (e) {
                            console.log((Date.now() - startTime));
                            if ((Date.now() - startTime) < 150 && !isMove) {
                                callback && callback.call(this, e);
                            }
                            // 重置参数
                            startTime = 0;
                            isMove = false;
                        });
                    }
    
                    bindTapEvent(document.querySelector('.box'), function (e) {
                        console.log(this);
                        console.log(e);
                        console.log('tap事件')
                    });
                }
            </script>
        </body>
    
        </html>
    

    相关文章

      网友评论

          本文标题:自定义tap

          本文链接:https://www.haomeiwen.com/subject/wswniltx.html