最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue移動端的左右滑動事件詳解

 更新時間:2020年06月17日 15:13:58   作者:染藍了天  
這篇文章主要為大家詳細介紹了vue移動端的左右滑動事件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了vue移動端左右滑動事件,供大家參考,具體內(nèi)容如下

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title></title>
  <script src="https://unpkg.com/vue"></script>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  <meta content="telephone=no" name="format-detection">
  <style>
   *{padding: 0;margin: 0;}
   body {background: #EEEEEE;}
   .box {text-align: center;}
   .btn {
    position: relative;
    width: 70%;
    height: 40px;
    margin: 150px auto;
    border-radius: 20px;
    background: #333333;
   }
   .btn-move {
    position: absolute;
    left: 0;
    top: 0;
    width: 40px;
    height: 40px;
    border-radius: 20px;
    background: #ededed;
   }
   .tt {
    font-size: 20px;
    color: #008000;
    text-align: center;
    margin-top: 50px;
   }
  </style>
 </head>
 <body>
  <div id="box">
   <slide-release></slide-release>
  </div>
 
  <script type="text/x-template" id="slide">
   <div>
    <div class="btn" ref='remove'>
     <span ref='btnImg' class="btn-move" 
      @touchstart='touchStart' 
      @touchmove='touchMove' 
      @touchend='touchEnd' 
      :style="slideEffect"
      >
     </span>
    </div>
    <p class="tt" v-show="isShow">你滑動成功了!</p>
   </div>
 
 
  </script>
  <script>
   Vue.component('slide-release',{
    template:'#slide',
    data:function(){
     return {
      isShow:false,
      startX:0,//開始觸摸的位置
      moveX:0,//滑動時的位置
      endX:0,//結(jié)束觸摸的位置
      disX:0,//移動距離
      slideEffect:'',//滑動時的效果,使用v-bind:style="deleteSlider"
 
     }
    },
    methods:{
     touchStart:function(ev) {
      ev = ev || event;
      ev.preventDefault();
//      console.log(ev.targetTouches);
//      console.log(ev.changedTouches);
      if(ev.touches.length == 1) { //tounches類數(shù)組,等于1時表示此時有只有一只手指在觸摸屏幕
       this.startX = ev.touches[0].clientX; // 記錄開始位置
      }
     },
     touchMove:function(ev) {
      ev = ev || event;
      ev.preventDefault();
      let btnWidth = this.$refs.remove.offsetWidth; //$refs 減少獲取dom節(jié)點的消耗
      let btnImg = this.$refs.btnImg.offsetWidth;
      console.log(ev.targetTouches);
      console.log(ev.changedTouches);
      if(ev.touches.length == 1) {
       //滑動時距離瀏覽器左側(cè)的距離
       this.moveX = ev.touches[0].clientX;
 
       //實時的滑動的距離-起始位置=實時移動的位置
       this.disX = this.moveX-this.startX;
       if(this.disX<0 || this.disX == 0) {
        this.slideEffect = 'transform:translateX(0px)';
       }else if(this.disX>0){
        this.slideEffect = 'transform:translateX('+this.disX+'px)';
 
        // 最大也只能等于刪除按鈕寬度 
        if(this.disX>=btnWidth) {
         this.slideEffect = 'transform:translateX('+(btnWidth-btnImg)+'px)';
        }
       }
      }
     },
     touchEnd:function(ev){
      ev = ev || event;
      ev.preventDefault();
      let btnWidth = this.$refs.remove.offsetWidth;
      let btnImg = this.$refs.btnImg.offsetWidth;
//      console.log(ev.changedTouches);
      if(ev.changedTouches.length == 1) {
       let endX = ev.changedTouches[0].clientX;
       this.disX = endX-this.startX;
       console.log(this.disX,'this.disX')
       console.log((btnWidth/2),'btnWidth/2');
       if(this.disX < (btnWidth/2)) {
        this.slideEffect = 'transform:translateX(0px)';
       }else {
        this.slideEffect = "transform:translateX("+(btnWidth-btnImg)+ "px)";
        //讓字段顯示出來,或者寫你需要的邏輯
        this.isShow = true
       }
      }
     }
    }
   })
   var vm = new Vue({
    el:'#box',
   })
  </script>
 </body>
</html> 

關于vue.js組件的教程,請大家點擊專題vue.js組件學習教程進行學習。

更多vue學習教程請閱讀專題《vue實戰(zhàn)教程》

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • pm2部署vue的實現(xiàn)步驟

    pm2部署vue的實現(xiàn)步驟

    本文主要介紹了使用PM2運行Vue項目的具體步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-11-11
  • 關于vue中根據(jù)用戶權(quán)限動態(tài)添加路由的問題

    關于vue中根據(jù)用戶權(quán)限動態(tài)添加路由的問題

    每次路由發(fā)生變化時都需要調(diào)用一次路由守衛(wèi),并且store中的數(shù)據(jù)會在每次刷新的時候清空,因此需要判斷store中是否有添加的動態(tài)路由,本文給大家分享vue中根據(jù)用戶權(quán)限動態(tài)添加路由的問題,感興趣的朋友一起看看吧
    2021-11-11
  • vue實現(xiàn)分頁功能

    vue實現(xiàn)分頁功能

    這篇文章主要為大家詳細介紹了vue實現(xiàn)分頁功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Vue?keep-alive的實現(xiàn)原理分析

    Vue?keep-alive的實現(xiàn)原理分析

    這篇文章主要介紹了Vue?keep-alive的實現(xiàn)原理分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue對Element中el-tab-pane添加@click事件無效問題解決

    Vue對Element中el-tab-pane添加@click事件無效問題解決

    這篇文章主要給大家介紹了關于Vue對Element中el-tab-pane添加@click事件無效問題的解決辦法,文中通過圖文以及代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • 基于Vue實現(xiàn)后臺系統(tǒng)權(quán)限控制的示例代碼

    基于Vue實現(xiàn)后臺系統(tǒng)權(quán)限控制的示例代碼

    本篇文章主要介紹了基于Vue實現(xiàn)后臺系統(tǒng)權(quán)限控制的示例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Ant Design Vue resetFields表單重置不生效問題及解決

    Ant Design Vue resetFields表單重置不生效問題及解決

    這篇文章主要介紹了Ant Design Vue resetFields 表單重置不生效問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • vue實現(xiàn)跨頁面定位錨點區(qū)域方式

    vue實現(xiàn)跨頁面定位錨點區(qū)域方式

    這篇文章主要介紹了vue實現(xiàn)跨頁面定位錨點區(qū)域方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 在Vue項目中引入騰訊驗證碼服務的教程

    在Vue項目中引入騰訊驗證碼服務的教程

    這篇文章主要介紹了在Vue項目中引入騰訊驗證碼服務的教程,需要的朋友可以參考下
    2018-04-04
  • 深入詳解Vue3 ref底層實現(xiàn)原理

    深入詳解Vue3 ref底層實現(xiàn)原理

    隨著現(xiàn)在vue3越來越普及,相應的面試題也多了起來。說到vue3的面試題,有一個最經(jīng)典的就是對于實現(xiàn)ref和reactive這兩個方法的底層原理,本文就來和大家簡單講講吧
    2023-04-04

最新評論

东安县| 贡嘎县| 顺义区| 娄烦县| 嘉鱼县| 开阳县| 延川县| 容城县| 方山县| 论坛| 永善县| 晋江市| 仙游县| 广丰县| 阿城市| 无锡市| 定安县| 镇安县| 青河县| 蓝田县| 临洮县| 肃宁县| 波密县| 益阳市| 长乐市| 安国市| 两当县| 乌拉特前旗| 天镇县| 东宁县| 康乐县| 深泽县| 金阳县| 射阳县| 凤庆县| 浠水县| 江门市| 钟祥市| 镇安县| 桃园市| 江源县|