美文网首页前端
web移动端左滑显示操作按钮

web移动端左滑显示操作按钮

作者: ZZES_ZCDC | 来源:发表于2019-08-23 14:17 被阅读0次

    体验地址 https://codepen.io/klren0312/full/PoYWJgM

    示例

    2

    代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
      <style>
        body {
          padding: 0;
          margin: 0 auto;
        }
        .container {
          padding: 20px;
          height: 100vh;
          background: #efefef;
        }
        .item {
          position: relative;
          height: 50px;
          margin-bottom: 20px;
          overflow: hidden;
          background: #fff;
        }
        .item .content {
          position: absolute;
          left: 0;
          width: 100%;
          height: 100%;
          padding-left: 20px;
          line-height: 50px;
          z-index: 1;
          box-sizing: border-box;
          background: #fff;
          border: 1px solid #ddd;
          transition: all .5s ease;
        }
        .item .button-group {
          position: absolute;
          right: 0;
          z-index: 0;
        }
        .item .button-group .del-btn {
          height: 50px;
          width: 60px;
          border: 0;
          color: #fff;
          background: #da3d3d;
        }
        .item.active .content {
          left: -60px;
        }
      </style>
    </head>
    <body>
      <div class="container">
        <!-- 0 默认状态, 1 左滑状态 -->
        <div class="item" data-status='0'>
          <div class="content">测试内容测试内容</div>
          <div class="button-group">
            <button class="del-btn">删除</button>
          </div>
        </div>
        <div class="item" data-status='0'>
          <div class="content">测试内容测试内容</div>
          <div class="button-group">
            <button class="del-btn">删除</button>
          </div>
        </div>
        <div class="item" data-status='0'>
          <div class="content">测试内容测试内容</div>
          <div class="button-group">
            <button class="del-btn">删除</button>
          </div>
        </div>
        <div class="item" data-status='0'>
          <div class="content">测试内容测试内容</div>
          <div class="button-group">
            <button class="del-btn">删除</button>
          </div>
        </div>
      </div>
      <script>
        const items = document.querySelectorAll('.item')
        items.forEach(item => {
          let touchStart, touchEnd
          // 滑动开始, 记录开始位置
          item.addEventListener('touchstart', function (e) {
            touchStart = e.touches[0].clientX
          })
          // 滑动结束
          item.addEventListener('touchend', function (e) {
            let currentEle = e.currentTarget
            touchEnd = e.changedTouches[0].clientX
            // 向左滑, 显示删除按钮
            if (currentEle.dataset.status === '0' && touchEnd - touchStart < -30) {
              currentEle.dataset.status = 1
              currentEle.classList.add('active')
            }
            // 向右滑, 隐藏删除按钮
            if (currentEle.dataset.status === '1' && touchEnd - touchStart > 30) {
              currentEle.dataset.status = 0
              currentEle.classList.remove('active')
            }
          })
        })
    
        const btns = document.querySelectorAll('.del-btn')
        btns.forEach(btn => {
          // 删除按钮点击事件
          btn.addEventListener('click', function (e) {
            btn.parentElement.parentElement.remove()
          })
        })
      </script>
    </body>
    </html>
    

    相关文章

      网友评论

        本文标题:web移动端左滑显示操作按钮

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