zoukankan      html  css  js  c++  java
  • 【前端】jQuery移动端左滑删除

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/left_slide_menu.html

      1 <!doctype html>
      2 <html>
      3     <head>
      4         <meta charset="utf-8">
      5         <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0,user-scalable=no">
      6         <title>左划删除</title>
      7         <script src="http://libs.baidu.com/jquery/1.8.3/jquery.min.js"></script>
      8         <style type="text/css">
      9             * {
     10                 margin: 0;
     11                 padding: 0;
     12             }
     13             
     14             .animate-slide-start {
     15                 -webkit-transition: all 0.2s ease-in-out;
     16                 -moz-transition: all 0.2s ease-in-out;
     17                 transition: all 0.2s ease-in-out;
     18             }
     19             
     20             .animate-slide {
     21                 -webkit-transform: translate3d(-55px, 0, 0);
     22                 -moz-transform: translate3d(-55px, 0, 0);
     23                 transform: translate3d(-55px, 0, 0);
     24             }
     25             
     26             .slide-wrapper {
     27                 width: 100%;
     28                 height: 60px;
     29                 overflow: hidden;
     30                 border-bottom: 1px solid #ccc;
     31             }
     32             
     33             .slide-scroll {
     34                 height: 60px;
     35                 overflow: hidden;
     36                 white-space: nowrap;
     37             }
     38             
     39             .slide-content-button {
     40                 width: 55px;
     41                 height: 60px;
     42             }
     43             
     44             .slide-content-button button {
     45                 width: 100%;
     46                 height: 100%;
     47                 border: none;
     48                 background: #ffe313;
     49                 color: #1f1f36;
     50             }
     51             
     52             .slide-content {
     53                 float: left;
     54                 display: inline-block;
     55                 height: 60px;
     56                 line-height: 60px;
     57             }
     58         </style>
     59         <script type="text/javascript">
     60             $(function() {
     61                 //手指滑动多少距离就认为是滑成功
     62                 //这个值不能太大,否则影响斜着滑动时,垂直滑动的流畅性,也不能太小,太灵敏也不好
     63                 var diffXDistance = 50;
     64                 
     65                 //当前滑动的对象
     66                 var currentObject;
     67                 //上一次滑动的对象
     68                 var lastObject;
     69                 
     70                 //是否可以左右滑动,在上下滑的时候禁止左右滑
     71                 var canSlide = true;
     72                 //用于记录按下的点
     73                 var startPoint;
     74                 
     75                 
     76                 $(".slide-content").css({
     77                      $(".slide-wrapper").width()
     78                 });
     79                 
     80                 $(".slide-scroll").css({
     81                      $(".slide-wrapper").width() + $(".slide-content-button").width()
     82                 })
     83                 .on('touchstart', function(e) {
     84                     currentObject = this;
     85                     
     86                     startPoint = {
     87                         x: e.originalEvent.changedTouches[0].pageX,
     88                         y: e.originalEvent.changedTouches[0].pageY
     89                     };
     90                 })
     91                 .on('touchmove', function(e) {
     92                     //如果是左右滑动,就禁止上下的滑动
     93                     //如果是上下的滑动,就禁止左右滑动
     94                     if(Math.abs(e.originalEvent.changedTouches[0].pageX - startPoint.x) > Math.abs(e.originalEvent.changedTouches[0].pageY - startPoint.y)) {
     95                         event.preventDefault();
     96                     } else {
     97                         canSlide = false;
     98                     }
     99                 })
    100                 .on('touchend', function(e) {
    101                     //如果是上下滑动,这里就直接返回了
    102                     if(!canSlide) {
    103                         canSlide = true;
    104                         return true;
    105                     }
    106                     
    107                     //点击除当前左滑对象之外的任意其他位置
    108                     if(lastObject && currentObject != lastObject) {
    109                         //右滑→
    110                         $(lastObject).removeClass("animate-slide");
    111 
    112                         //清空上一个左滑的对象
    113                         lastObject = undefined;
    114                     }
    115                     
    116                     var diffX = e.originalEvent.changedTouches[0].pageX - startPoint.x;
    117                     if(diffX < -diffXDistance) {
    118                         //左滑←
    119                         $(currentObject).addClass("animate-slide");
    120                         if(lastObject && lastObject != currentObject) {
    121                             //右滑→
    122                             $(lastObject).removeClass("animate-slide");
    123                         }
    124                         //记录上一个左滑的对象
    125                         lastObject = currentObject;
    126                     } else if(diffX >= diffXDistance) {
    127                         if(currentObject == lastObject) {
    128                             //右滑→
    129                             $(currentObject).removeClass("animate-slide");
    130                             //清空上一个左滑的对象
    131                             lastObject = undefined;
    132                         }
    133                     }
    134                 });
    135             });
    136         </script>
    137     </head>
    138 
    139     <body>
    140         <div class="slide-wrapper">
    141             <div class="slide-scroll animate-slide-start">
    142                 <div class="slide-content">
    143                     <div>我是内容</div>
    144                 </div>
    145                 <div class="slide-content-button"><button>删除</button></div>
    146             </div>
    147         </div>
    148         <div class="slide-wrapper">
    149             <div class="slide-scroll animate-slide-start">
    150                 <div class="slide-content">
    151                     <div>我是内容</div>
    152                 </div>
    153                 <div class="slide-content-button"><button>删除</button></div>
    154             </div>
    155         </div>
    156         <div class="slide-wrapper">
    157             <div class="slide-scroll animate-slide-start">
    158                 <div class="slide-content">
    159                     <div>我是内容</div>
    160                 </div>
    161                 <div class="slide-content-button"><button>删除</button></div>
    162             </div>
    163         </div>
    164         <div class="slide-wrapper">
    165             <div class="slide-scroll animate-slide-start">
    166                 <div class="slide-content">
    167                     <div>我是内容</div>
    168                 </div>
    169                 <div class="slide-content-button"><button>删除</button></div>
    170             </div>
    171         </div>
    172         <div class="slide-wrapper">
    173             <div class="slide-scroll animate-slide-start">
    174                 <div class="slide-content">
    175                     <div>我是内容</div>
    176                 </div>
    177                 <div class="slide-content-button"><button>删除</button></div>
    178             </div>
    179         </div>
    180         <div class="slide-wrapper">
    181             <div class="slide-scroll animate-slide-start">
    182                 <div class="slide-content">
    183                     <div>我是内容</div>
    184                 </div>
    185                 <div class="slide-content-button"><button>删除</button></div>
    186             </div>
    187         </div>
    188         <div class="slide-wrapper">
    189             <div class="slide-scroll animate-slide-start">
    190                 <div class="slide-content">
    191                     <div>我是内容</div>
    192                 </div>
    193                 <div class="slide-content-button"><button>删除</button></div>
    194             </div>
    195         </div>
    196         <div class="slide-wrapper">
    197             <div class="slide-scroll animate-slide-start">
    198                 <div class="slide-content">
    199                     <div>我是内容</div>
    200                 </div>
    201                 <div class="slide-content-button"><button>删除</button></div>
    202             </div>
    203         </div>
    204         <div class="slide-wrapper">
    205             <div class="slide-scroll animate-slide-start">
    206                 <div class="slide-content">
    207                     <div>我是内容</div>
    208                 </div>
    209                 <div class="slide-content-button"><button>删除</button></div>
    210             </div>
    211         </div>
    212         <div class="slide-wrapper">
    213             <div class="slide-scroll animate-slide-start">
    214                 <div class="slide-content">
    215                     <div>我是内容</div>
    216                 </div>
    217                 <div class="slide-content-button"><button>删除</button></div>
    218             </div>
    219         </div>
    220         <div class="slide-wrapper">
    221             <div class="slide-scroll animate-slide-start">
    222                 <div class="slide-content">
    223                     <div>我是内容</div>
    224                 </div>
    225                 <div class="slide-content-button"><button>删除</button></div>
    226             </div>
    227         </div>
    228         <div class="slide-wrapper">
    229             <div class="slide-scroll animate-slide-start">
    230                 <div class="slide-content">
    231                     <div>我是内容</div>
    232                 </div>
    233                 <div class="slide-content-button"><button>删除</button></div>
    234             </div>
    235         </div>
    236         <div class="slide-wrapper">
    237             <div class="slide-scroll animate-slide-start">
    238                 <div class="slide-content">
    239                     <div>我是内容</div>
    240                 </div>
    241                 <div class="slide-content-button"><button>删除</button></div>
    242             </div>
    243         </div>
    244     </body>
    245 </html>
  • 相关阅读:
    JB的IDE可视化MongoDB、MySQL数据库信息
    爬取QQ音乐(讲解爬虫思路)
    selenium实现淘宝的商品爬取
    爬取中国福彩网并做可视化分析
    Django的学习进阶(二)———— name
    xpath获取一个标签下的多个同级标签
    selenium中动作链的使用
    Error: Cannot find module 'electron-prebuilt'
    error Invalid tag name "–save-dev": Tags may not have any characters that encodeURIComponent encodes
    TypeError:mainWindow.loadUrl is not a function
  • 原文地址:https://www.cnblogs.com/shamoyuu/p/left_slide_menu.html
Copyright © 2011-2022 走看看