JS实现移动端购物车左滑删除功能

 

<!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;
        }

        i {
            font-style: normal;
        }

        a {
            color: #393939;
            text-decoration: none;
        }

        .list {
            overflow: hidden;
            margin-top: .2rem;
            padding-left: .3rem;
            border-top: 1px solid #ddd;
        }

        .list li {
            overflow: hidden;
            width: 120%;
            border-bottom: 1px solid #ddd;
        }

        .list li a {
            display: block;
            height: .88rem;
            line-height: .88rem;
            -webkit-transition: all 0.3s linear;
            transition: all 0.3s linear;
        }

        .list li i {
            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><a href="#">侧滑显示删除按钮1<i>删除</i></a></li>
                <li><a href="#">侧滑显示删除按钮2<i>删除</i></a></li>
                <li><a href="#">侧滑显示删除按钮3<i>删除</i></a></li>
            </ul>
        </div>
        <script>
            //侧滑显示删除按钮
            var expansion = null; //是否存在展开的list
            var container = document.querySelectorAll('.list li a');
            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;
                    if (expansion) {   //判断是否展开,如果展开则收起
                        expansion.className = "";
                    }
                });
                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();
                            this.className = "swipeleft";   //左滑展开
                            expansion = this;
                        }
                        swipeY = false;
                    }
                    // 上下滑动
                    if (swipeY && Math.abs(X - x) - Math.abs(Y - y) < 0) {
                        swipeX = false;
                    }
                });
            }
        </script>
</body>

</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值