• 手机侧滑事件


    手机侧滑事件

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" id="viewport" content="width=device-width, initial-scale=1">
        <title> 手机侧滑事件</title>
        <style>
            *{ padding:0; margin:0; list-style: none;}
            header{ background: #f7483b; border-bottom: 1px solid #ccc}
            header h2{ text-align: center; line-height: 54px; font-size: 16px; color: #fff}
            .list-ul{ overflow: hidden}
            .list-li{ line-height: 60px; border-bottom: 1px solid #fcfcfc; position:relative;padding: 0 12px; color: #666;
                background: #f2f2f2;
                -webkit-transform: translateX(0px);
            }
            .btn{ position: absolute; top: 0; right: -80px; text-align: center; background: #ffcb20; color: #fff; width: 80px}
        </style>
        <script>
           
            window.addEventListener('load',function(){
                var initX;
                var moveX;
                var X = 0;
                var objX = 0;
                window.addEventListener('touchstart',function(event){
                    event.preventDefault();
                    var obj = event.target.parentNode;
                    if(obj.className == "list-li"){
                        initX = event.targetTouches[0].pageX;
                        objX =(obj.style.WebkitTransform.replace(/translateX(/g,"").replace(/px)/g,""))*1;
                    }
                    if( objX == 0){
                        window.addEventListener('touchmove',function(event) {
                            event.preventDefault();
                            var obj = event.target.parentNode;
                            if (obj.className == "list-li") {
                                moveX = event.targetTouches[0].pageX;
                                X = moveX - initX;
                                if (X > 0) {
                                    obj.style.WebkitTransform = "translateX(" + 0 + "px)";
                                }
                                else if (X < 0) {
                                    var l = Math.abs(X);
                                    obj.style.WebkitTransform = "translateX(" + -l + "px)";
                                    if(l>80){
                                        l=80;
                                        obj.style.WebkitTransform = "translateX(" + -l + "px)";
                                    }
                                }
                            }
                        });
                    }
                    else if(objX<0){
                        window.addEventListener('touchmove',function(event) {
                            event.preventDefault();
                            var obj = event.target.parentNode;
                            if (obj.className == "list-li") {
                                moveX = event.targetTouches[0].pageX;
                                X = moveX - initX;
                                if (X > 0) {
                                    var r = -80 + Math.abs(X);
                                    obj.style.WebkitTransform = "translateX(" + r + "px)";
                                    if(r>0){
                                        r=0;
                                        obj.style.WebkitTransform = "translateX(" + r + "px)";
                                    }
                                }
                                else {     //向左滑动
                                    obj.style.WebkitTransform = "translateX(" + -80 + "px)";
                                }
                            }
                        });
                    }
    
                })
                window.addEventListener('touchend',function(event){
                    event.preventDefault();
                    var obj = event.target.parentNode;
                    if(obj.className == "list-li"){
                        objX =(obj.style.WebkitTransform.replace(/translateX(/g,"").replace(/px)/g,""))*1;
                        if(objX>-40){
                            obj.style.WebkitTransform = "translateX(" + 0 + "px)";
                        }else{
                            obj.style.WebkitTransform = "translateX(" + -80 + "px)";
                        }
                    }
                 })
    
            })
    
        </script>
    
    </head>
    <body>
    <header>
        <h2>消息列表</h2>
    </header>
    <section class="list">
        <ul class="list-ul">
            <li id="li" class="list-li">
                <div class="con">
                    你的快递到了,请到楼下签收
                </div>
                <div class="btn">删除</div>
            </li>
            <li class="list-li">
                <div class="con">
                    哇,你在干嘛,快点来啊就等你了
                </div>
                <div class="btn">删除</div>
            </li>
        </ul>
    </section>
    </body>
    </html>
  • 相关阅读:
    数论初步
    最大流
    vue + elemen 初始化项目--构建
    call, appply , bind
    动态引入全局组件
    少见好用的js API
    vue父子组件通讯
    vue优化相关---性能篇
    vue推荐文章
    webpack4.x系列--资源和样式解析
  • 原文地址:https://www.cnblogs.com/wzzl/p/5084906.html
Copyright © 2020-2023  润新知