首页 > 有大神有空吗?帮看一下问题!在滑动第二个目标的时候上个目标为什么没有回位?谢谢

有大神有空吗?帮看一下问题!在滑动第二个目标的时候上个目标为什么没有回位?谢谢

<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>滑动删除</title>
<script language="javascript">

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)";
      objX = 0;
    } else {
      obj.style.WebkitTransform = "translateX(" + -80 + "px)";
      objX = -80;
    }
  }
})

})
</script>
</head>

<style>

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>

<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">Delete</div>
  </li>
  
  <li class="list-li">
    <div class="con">
      ??????????
    </div>
    <div class="btn">Delete</div>
  </li>
  
</ul>

</section>

</body>
</html>


建议你扔到codepen jsfiddle 这样的平台上再贴出链接,这样看太费事。

【热门文章】
【热门文章】