vue如何實(shí)現(xiàn)左右滑動tab(vue-touch)
下載(vue-touch)
npm install vue-touch@next --save
main.js中引入
import VueTouch from 'vue-touch'
Vue.use(VueTouch, {name: 'v-touch'})開始使用
(用v-touch將要實(shí)現(xiàn)滑動的區(qū)域包住 并綁定相應(yīng)事件)
<v-touch @swipeleft='left' @swiperight='right'> ?? ??? ??? ?<div class="tablBox" v-if="index == 0"> ?? ??? ??? ??? ?1巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉 ?? ??? ??? ?</div> ?? ??? ??? ?<div class="tablBox" v-if="index == 1"> ?? ??? ??? ??? ?2巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉 ?? ??? ??? ?</div> ?? ??? ??? ?<div class="tablBox" v-if="index == 2"> ?? ??? ??? ??? ?3巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉 ?? ??? ??? ?</div> ?? ??? ??? ?<div class="tablBox" v-if="index == 3"> ?? ??? ??? ??? ?4巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉 ?? ??? ??? ?</div> </v-touch>
vue-touch 的相關(guān)事件
| 事件名稱 | 事件描述 |
|---|---|
| pan | 在指定的 DOM 區(qū)域內(nèi),一個手指放下并移動事件,即觸屏中的拖動事件 |
| panstart | 拖動開始 |
| panmove | 拖動過程 |
| panend | 拖動結(jié)束 |
| pancancel | 拖動取消 |
| panleft | 向左拖動 |
| panright | 向右拖動 |
| panup | 向上拖動 |
| pandown | 向下搬動 |
| swipe | 在指定的 DOM 區(qū)域內(nèi),一個手指快速的在觸屏上滑動,即平時用到最多的滑動事件 |
| swipeleft | 向左滑動 |
| swiperight | 向右滑動 |
| swipeup | 向上滑動 |
| swipedown | 向下滑動 |
| pinch | 在指定的 DOM 區(qū)域內(nèi),兩個手指(默認(rèn)為兩個手指,多指觸控需要單獨(dú)設(shè)置)或多個手指相對(越來越近)移動或相向(越來越遠(yuǎn))移動時事件 |
| pinchstart | 多點(diǎn)觸控開始 |
| pinchmove | 多點(diǎn)觸控過程 |
| pinchend | 多點(diǎn)觸控結(jié)束 |
| pinchcancel | 多點(diǎn)觸控取消 |
| pinchin | 多點(diǎn)觸控時兩手指越來越近 |
| pinchout | 多點(diǎn)觸控時兩手指越來越遠(yuǎn) |
| press | 在指定的 DOM 區(qū)域內(nèi),這個事件相當(dāng)于 PC 端的 Click 事件,不能包含任何的移動,最小按壓時間為 500ms,常用于我們在手機(jī)上用的復(fù)制粘貼等功能 |
| pressup | 點(diǎn)擊事件離開時觸發(fā) |
| tap | 在指定的 DOM 區(qū)域內(nèi),一個手指輕拍或點(diǎn)擊時觸發(fā)該事件(類似 PC 端的 click),該事件最大點(diǎn)擊時間為 250ms,如果超過 250ms 則按 press 事件處理 |
| rotate | 在指定的 DOM 區(qū)域內(nèi),當(dāng)兩個手指或更多手指呈圓型旋轉(zhuǎn)時觸發(fā) |
| rotatestart | 旋轉(zhuǎn)開始 |
| rotatemove | 旋轉(zhuǎn)過程 |
| rotateend | 旋轉(zhuǎn)結(jié)束 |
| rotatecancel | 旋轉(zhuǎn)取消 |
開始做tab切換
- html
<template>
<div>
<div class="tabls">
<div class="li" :class="{'as':index == i}" v-for="(t,i) in tabls" :key='i' @click="click(i)">{{t}}</div>
</div>
<v-touch @swipeleft='left' @swiperight='right'>
<div class="tablBox" v-if="index == 0">
1巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉
</div>
<div class="tablBox" v-if="index == 1">
2巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉
</div>
<div class="tablBox" v-if="index == 2">
3巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉
</div>
<div class="tablBox" v-if="index == 3">
4巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉
</div>
</v-touch>
</div>
</template>- css
.tablBox{
width:98%;
height: 200px;
margin: 0 auto;
border: 1px solid #007AFF;
box-shadow: 1px 1px 1px #007AFF;
border-radius: 5px;
}
.tabls{
width: 98%;
margin: 10px auto;
display: flex;
flex-direction: row;
justify-items: flex-start;
}
.tabls .li{
padding: 5px;
margin: 0 5px;
font-size: 16px;
}
.tabls .li.as{
color: #007AFF;
border-bottom:1px solid #007AFF;
box-shadow: 1px 1px 1px #ccc;
}- js
export default {
data() {
return {
index:0,
oldIndex:0,
tabls:['1','2','3','4']
};
},
methods: {
left(){
this.index+=1;
if (this.index > (this.tabls.length -1)) {
this.index = 0;
}
},
right(){
this.index-=1;
if (this.index < 0) {
this.index = (this.tabls.length -1);
}
},
click(i){
this.index = i;
}
},
created() {
},
mounted (){
}
}
- 效果

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue2基本響應(yīng)式實(shí)現(xiàn)方式之讓數(shù)組也變成響應(yīng)式
這篇文章主要介紹了vue2基本響應(yīng)式實(shí)現(xiàn)方式之讓數(shù)組也變成響應(yīng)式問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04
Taro+vue3?實(shí)現(xiàn)電影切換列表功能
我們做類似于貓眼電影的小程序或者H5?的時候?我們會做到那種?左右滑動的電影列表,這種列表一般帶有電影場次,我這個項目是基于Taro?+vue3?+ts?來寫的用的組件庫也是京東的nut-ui以上的代碼和組件也有的是我二次封裝的組件,對vue3電影切換列表知識,感興趣的朋友一起看看吧2024-01-01
vue如何使用vant組件的field組件disabled修改默認(rèn)樣式
這篇文章主要介紹了vue如何使用vant組件的field組件disabled修改默認(rèn)樣式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05
Vue中的無限加載vue-infinite-loading的方法
本篇文章主要介紹了Vue中的無限加載vue-infinite-loading的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04
VUE中setTimeout和setInterval自動銷毀案例
這篇文章主要介紹了VUE中setTimeout和setInterval自動銷毀案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
Vue3響應(yīng)式對象是如何實(shí)現(xiàn)的(1)
這篇文章主要介紹了Vue3響應(yīng)式對象是如何實(shí)現(xiàn)的,文章圍繞主題展開詳細(xì)的內(nèi)容介紹具有一定的參考價值,需要的小伙伴可以參考一下2022-08-08
前端vue如何通過URL訪問存儲在服務(wù)器或磁盤的圖片
在Vue中,通常需要將圖片存儲在服務(wù)器端,并通過url地址來訪問,下面這篇文章主要給大家介紹了前端vue如何通過URL訪問存儲在服務(wù)器或磁盤的圖片的相關(guān)資料,需要的朋友可以參考下2024-02-02

