js 左滑删除编辑

//固定格式html,固定的css和下面那段固定的js
<li  class="xxListLi" >
     <!--你自己的内容*-->
    <!--<div   style="height: 200px;">bbbbbsdfasf sdffd</div>-->

   /*删除和编辑,可以两个都添加或者任选一个*/
    <div class="xxEditBtn">编辑</div>
    <div class="xxDelBtn">删除</div>
</li>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <script src="https://cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/vconsole@3.3.4/dist/vconsole.min.js"></script>
    <title>JS Bin</title>
</head>
<!--<link rel="stylesheet" href="xxSwpie.css">-->
<style  >
    /*设置ul样式*/

    ul.xxWrapUl {
        padding: 0;
        margin: 0;
    }

    ul.xxWrapUl, li.xxListLi {
        overflow: hidden;
        list-style: none;
    }
    li.xxListLi{
        width:150%;
        /*background:#ccc;*/
        position:relative;
        /*margin:1% 0;*/
        margin:0;
        position:relative;
        -webkit-transition:all 0.3s linear;
        transition:all 0.3s linear;
        border-bottom: 1px solid #cccccc;
    }

    /*ul li div:first-of-type{
        float:left;
        !*width:80%;*!
    }*/
    li.xxListLi .xxDelBtn{
        float:right;
        /*padding:5% 0;*/
        width:15%;
        background:#ff0000;
        text-align: center;
    }
    li.xxListLi .xxEditBtn{
        float:right;
        /*padding:5% 0;*/
        width:15%;
        background: #8dff66;
        text-align: center;
    }
    /*设置移动效果*/

    .xxMoveLeft1{
        transform:translateX(-15%);
        -webkit-transform:translateX(-15%);

    }
    .xxMoveLeft2{
        transform:translateX(-33%);
        -webkit-transform:translateX(-33%);
    }
    li.xxListLi>:first-child{
        float:left
    }
</style>
<body>
<li  class="xxListLi" >
    <div   style="height: 200px;">bbbbbsdfasf sdffd</div>
    <div class="xxEditBtn">编辑</div>
    <div class="xxDelBtn">删除</div>
</li>
<li  class="xxListLi">
<div  style="height:50px">你好 sdffd</div>
    <div class="xxDelBtn">删除</div>
</li>


<script>

    /*$('li.xxListLi').append(`<div class="xxDelBtn">删除</div>`)*/
    $('li.xxListLi').wrapAll(`<ul class="xxWrapUl"></ul>`)

    //$(".xxDelBtn").css('height',$(".xxDelBtn").prev().height()+'px')

    var x,y,X,Y,moveX,moveY;

    var btnNum = 1
    $('li.xxListLi').on('touchstart',function (e) {
        if($(this).find('.xxDelBtn').length >0 && $(this).find('.xxEditBtn').length>0){
            //设置长度
            $(this).width('150%')
            btnNum = 2

        }else{
            $(this).width('120%')
            btnNum = 1
        }

        $(this).find('.xxDelBtn').css({
            'height':$(this).children().eq(0).height()+'px',
            'line-height':$(this).children().eq(0).height()+'px',

        })
        $(this).find('.xxEditBtn').css({
            'height':$(this).children().eq(0).height()+'px',
            'line-height':$(this).children().eq(0).height()+'px',

        })

        /*获取最初的触摸位置*/

        x = e.changedTouches[0].pageX;
        y = e.changedTouches[0].pageY;
        moveX = true;
        moveY = true;
    })

    $('li.xxListLi').on('touchmove',function (e) {
        X = e.changedTouches[0].pageX;
        Y = e.changedTouches[0].pageY;

        //左右滑动
        if(moveX && Math.abs(X - x) - Math.abs(Y -y) > 0){
            e.stopPropagation();//阻止冒泡事件
//右滑收起删除按钮
            if(X - x > 10){
                //e.preventDefault();
                $(this).removeClass("xxMoveLeft"+btnNum);
            }
//左滑显示删除按钮
            if(x - X > 10){
                //e.preventDefault();
                //deleteClass("xxMoveLeft")
                $(this).addClass("xxMoveLeft"+btnNum);
                open = this;//存入展开的li元素
            }
            moveY = false;//左右滑动时不执行上下滑动时的事件
        }
    })
</script>
</body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容