zoukankan      html  css  js  c++  java
  • 手机div侧滑删除

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title>js侧滑显示删除按钮</title>
    <style>
    *{margin:0;padding:0;}
    body{font-size:.14rem;}
    li{list-style:none;}
    a{color:#393939;text-decoration:none;}
    .list{overflow:hidden;padding-left:.3rem;}
    .list li{width:120%;border-bottom:1px solid #ddd;}
    .list li p{overflow:hidden;height:.88rem;line-height:.88rem;-webkit-transition:all 0.3s linear;transition:all 0.3s linear;}
    .list li a{display:inline-block;width:85%;}
    .list li span{float:right;width:15%;text-align:center;background:#E2421B;color:#fff;}
    .swipeleft{transform:translateX(-15%);-webkit-transform:translateX(-15%);}
    </style>
    <script>
    //计算根节点HTML的字体大小
    function resizeRoot(){
        var deviceWidth = document.documentElement.clientWidth,
            num = 750,
            num1 = num / 100;
        if(deviceWidth > num){
            deviceWidth = num;  
        }
        document.documentElement.style.fontSize = deviceWidth / num1 + "px";
    }
    //根节点HTML的字体大小初始化
    resizeRoot();
    window.onresize = function(){
        resizeRoot();
    };
    </script>
    </head>
    <body>
    <section>
    <div class="list">
        <ul>
            <li><p><a href="#">侧滑显示删除按钮</a><span>删除</span></p></li>
            <li><p><a href="#">侧滑显示删除按钮</a><span>删除</span></p></li>
            <li><p><a href="#">侧滑显示删除按钮</a><span>删除</span></p></li>
        </ul>
    </div>
    <script>
    //侧滑显示删除按钮
    var container = document.querySelectorAll('.list li p');
    for(var i = 0; i < container.length; i++){    
        var x, y, X, Y, swipeX, swipeY;
        container[i].addEventListener('touchstart', function(event) {
            x = event.changedTouches[0].pageX;
            y = event.changedTouches[0].pageY;
            swipeX = true;
            swipeY = true ;      
        });
        container[i].addEventListener('touchmove', function(event){     
            X = event.changedTouches[0].pageX;
            Y = event.changedTouches[0].pageY;        
            // 左右滑动
            if(swipeX && Math.abs(X - x) - Math.abs(Y - y) > 0){
                // 阻止事件冒泡
                event.stopPropagation();
     
                if(X - x > 10){   //右滑
                    event.preventDefault();
                    this.className = "";    //右滑收起
                }
                if(x - X > 10){   //左滑
                    event.preventDefault();                
                    var swipeLeft = document.getElementsByClassName("swipeleft");
                    for(var j = 0; j < swipeLeft.length; j++){
                        swipeLeft[j].className = "";
                    }
                    this.className = "swipeleft";   //左滑展开
                }
                swipeY = false;
            }
            // 上下滑动
            if(swipeY && Math.abs(X - x) - Math.abs(Y - y) < 0) {
                swipeX = false;
            }        
        });
    }
    
    var i = document.querySelectorAll('.list li span');
    i.forEach(function(item, index){
        i[index].onclick = function(){
            this.parentNode.parentNode.remove();
        };
    });
    </script>
    </body>
    </html>
  • 相关阅读:
    Linux 下 Lua 与 LuaSQL 模块安装
    js学习笔记27----键盘事件
    js学习笔记26----事件冒泡,事件捕获
    js学习笔记25----Event对象
    js学习笔记24----焦点事件
    js学习笔记23----窗口尺寸及窗口事件
    js学习笔记22----BOM属性和方法
    VS Code 常用快捷键
    你不知道的JavaScript学习笔记1——作用域
    三种CSS方法实现loadingh点点点的效果
  • 原文地址:https://www.cnblogs.com/beimingbingpo/p/9019260.html
Copyright © 2011-2022 走看看