1. 程式人生 > >vue 手指長按觸發事件

vue 手指長按觸發事件

手指 chm () timeout 自己 div als 按住說話 而不是

按鈕

<span class="btn" @touchstart="gtouchstart()" @touchmove="gtouchmove()" @touchend="gtouchend()">按住說話</span>

data數據定義一個定時器

timeOutEvent:0,//定時器

方法

        gtouchstart(){
                this.timeOutEvent = setTimeout(()=>{
                    this.timeOutEvent = 0;
                    
//真正長按後應該執行的內容    console.log("長按事件觸發發"); },500);//這裏設置定時器,定義長按500毫秒觸發長按事件,時間可以自己改,個人感覺500毫秒非常合適 return false; },

        //如果手指有移動,則取消所有事件,此時說明用戶只是要移動而不是長按
            gtouchmove(){
                clearTimeout(this.timeOutEvent);//
清除定時器 this.timeOutEvent = 0; alert("取消了"); },

      //手釋放,如果在500毫秒內就釋放,則取消長按事件,此時可以執行onclick應該執行的事件
            gtouchend(){
                clearTimeout(this.timeOutEvent);//清除定時器
                if(this.timeOutEvent!==0){
                    //這裏寫要執行的內容(尤如onclick事件)
console.log("你這是點擊,不是長按"); } return false; },

vue 手指長按觸發事件