H5左側滑刪除簡單實現


 

簡單的左滑刪除

實現功能

在一個列表的一條中,往左滑動時,右邊出現刪除按鈕,點擊可刪除這一條

實現辦法

列表中一項為父div,其中包含內容div和刪除按鈕span 父div相對定位,設置寬度.內容div寬度與父div寬度一樣.內容和按鈕都絕對定位,並且內容zindex在按鈕之上 這樣,就將按鈕遮住了.然后在內容上綁定touchstart和touchmove事件.計算坐標的移動判斷出是左還是右. 根據左和右來改變內容的left值.當內容的left值向左移動一段距離,那么刪除按鈕就露出來了.可將這段距離設為 刪除按鈕的寬度.當內容向右移動時,再將left值設為0.這樣就實現了.


點擊綠色查看效果

第一條
刪除

 

 
CSS:
  .moveleft{
            transform:translateX(-50px);/*改變位置時,可以添加或刪除這個C3類.效果是水平移動50像素.正負表示方向*/
        }
        .itembox {
            position:relative;/*父DIV相對定位*/
            width: 400px;/*要設置寬度*/
            font-size:16px;
        }
        .itemcont {
            z-index:1;/*內容層在按鈕上*/
            position:absolute;/*絕對定位*/
            width: 400px;/*與父DIV寬度一樣*/
            height: 34px;
            line-height: 34px;
            background-color:green;
        }

        .itemdelbtn {
            position:absolute;/*絕對定位*/
            right:0;top:0;/*在最右邊*/
            display: inline-block;
            width: 50px;
            height: 34px;
            text-align: center;
            line-height: 34px;
            background-color: red;
        }
View Code

 

js:
 1  function moveleft(thisobj)
 2             {
 3             var p = $(thisobj).position();
 4             if (p.left < 0)
 5                 thisobj.style.left=0+'px';
 6             else
 7                 thisobj.style.left = -50+'px';
 8         }
 9         (function TouchLeft()
10         {
11             var startX, startY, moveEndX, moveEndY, X, Y;
12             $(".itemcont").on("touchstart", function (e)
13             {
14                  //e.preventDefault();
15                 startX = e.originalEvent.changedTouches[0].pageX,
16                 startY = e.originalEvent.changedTouches[0].pageY;
17             });
18             $(".itemcont").on("touchmove", function (e)
19             {
20                  //e.preventDefault();
21                 moveEndX = e.originalEvent.changedTouches[0].pageX,
22                 moveEndY = e.originalEvent.changedTouches[0].pageY,
23                 X = moveEndX - startX,
24                 Y = moveEndY - startY;
25 
26                 if (Math.abs(X) > Math.abs(Y) && X < 0) {  //從右側向左滑動
27                     $(this).css('left', '-50px');
28                 } else if (Math.abs(X) > Math.abs(Y) && X > 0) { $(this).css('left', '0'); }
29             });
30         })()
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM