首頁  >  文章  >  web前端  >  VUE長依事件需求實例分享

VUE長依事件需求實例分享

小云云
小云云原創
2018-01-09 13:41:362270瀏覽

本文主要為大家詳細介紹了為大家詳細幾種長按事件的需求,具有一定的參考價值,有興趣的小伙伴們可以參考一下,希望能幫助到大家。

在開發中常常會有長按事件的需求,這裡我簡單的介紹幾種長按事件的需求。

 需求一:長按數字累加或累減

#HTML:


##

<p class="mui-numbox" data-numbox-step=&#39;10&#39; data-numbox-min=&#39;0&#39; data-numbox-max=&#39;100&#39;>
   <button class="mui-btn mui-numbox-btn-minus" type="button"@touchstart="Loop_Sub(item.CartID)" @touchend="clearLoop()">-</button>
   <input class="mui-numbox-input" type="number" :value="item.Cart_Nums"/>
   <button class="mui-btn mui-numbox-btn-plus" type="button" @touchstart="Loop_Add(item.CartID)" @touchend="clearLoop()">+</button>
</p>

JS :


var vm = new Vue({     
  el: "#vue-container",
  data:{
    Loop:null
  },
  methods:{//长按添加数量
    Loop_Add:function(ID){
      //设置数量
      clearInterval(vm.Loop);//再次清空定时器,防止重复注册定时器
      $target=$(event.target).parent().find(&#39;input&#39;);
      vm.Loop=setInterval(function(){
      $num=$target.val();
      $target.val(parseInt($num)+1);
      },100);
    },
    //长按减少数量
    Loop_Sub:function(ID){
      //设置数量
      clearInterval(vm.Loop);//再次清空定时器,防止重复注册定时器
      $target=$(event.target).parent().find(&#39;input&#39;);
      vm.Loop=setInterval(function(){
        $num=$target.val();
        if($num>0){
          $target.val(parseInt($num)-1);
        }else{
          clearInterval(vm.Loop);
        }
        //改变点击数
      },100);
    },
    clearLoop:function(){
      clearInterval(vm.Loop);
    }
  }
})

 這個Demo是在行動裝置上測試的,因此使用的是touch事件。方法很簡單,touchstart的時候去註冊個Interval定時器,touchend的時候再把定時器清除掉,這樣就能實現長按持續累加或累減的效果。

需求二:長按延時事件觸發

這類需求也比較簡單,和需求一類似。這裡拿需求一舉例,只要在touchstart新增setTimeout計時器延時事件執行,touchend清除計時器即可。

相關推薦:


vue實作長圖垂直居上短圖垂直居中的方法實例

vue使用axios跨域請求資料實例詳解

Vue高階元件的使用方法

以上是VUE長依事件需求實例分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn