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

vue 和vue-touch 實現(xiàn)移動端左右導航效果(仿京東移動站導航)

 更新時間:2017年04月22日 08:53:46   作者:大宅廣  
這篇文章主要介紹了vue 和vue-touch 實現(xiàn)移動端左右導航效果(仿京東移動站導航),需要的朋友可以參考下

先給大家展示下效果圖,感覺還不錯請參考實現(xiàn)代碼:

使用技術(shù):vue2.0 webpack vue-touch 一些簡單的javascript;

(注意:vue-touch 使用的是2.0.0版本 需要與vue2.0.0兼容)

vue-touch(地址:https://github.com/vuejs/vue-touch 注意是next 分支)

左側(cè)導航可滑動(右側(cè)視圖窗因為和左邏輯一樣 就沒寫)

var VueTouch = require('vue-touch')
Lib.Vue.use(VueTouch, {name: 'v-touch'})

通過npm 安裝后vuetouch 后引入

我這里Lib,是我的一個方法 你也可以 直接Vue.use()引用

{name:'v-touch'}的作用 聲明一個以vue-touch的標簽

然后 在html內(nèi)寫一個 <vue-touch></vue-touch>就可以,當然后面我們要寫入方法;

附:vue-touch方法

因為vue-touch其實封裝了 hammer.js的方法 其實我們這里介紹的也就是他幾個事件;詳情可以搜索 hammer.js的文檔;

hammer.js主要針對觸屏的6大事件進行監(jiān)聽。如下圖所示:

1、  Pan事件:在指定的dom區(qū)域內(nèi),一個手指放下并移動事件,即觸屏中的拖動事件。這個事件在屏觸開發(fā)中比較常用,如:左拖動、右拖動等,如手要上使用QQ時向右滑動出現(xiàn)功能菜單的效果。該事件還可以分別對以下事件進行監(jiān)聽并處理:

Panstart:拖動開始、Panmove:拖動過程、Panend:拖動結(jié)束、Pancancel:拖動取消、Panleft:向左拖動、Panright:向右拖動、Panup:向上拖動、Pandown:向下拖動

2、  Pinch事件:在指定的dom區(qū)域內(nèi),兩個手指(默認為兩個手指,多指觸控需要單獨設(shè)置)或多個手指相對(越來越近)移動或相向(越來越遠)移動時事件。該事件事以分別對以下事件進行監(jiān)聽并處理:

Pinchstart:多點觸控開始、Pinchmove:多點觸控過程、Pinchend:多點觸控結(jié)束、Pinchcancel:多點觸控取消、Pinchin:多點觸控時兩手指距離越來越近、Pinchout:多點觸控時兩手指距離越來越遠

3、  Press事件:在指定的dom區(qū)域內(nèi)觸屏版本的點擊事件,這個事件相當于PC端的Click事件,該不能包含任何的移動,最小按壓時間為500毫秒,常用于我們在手機上用的“復制、粘貼”等功能。該事件分別對以下事件進行監(jiān)聽并處理:

Pressup:點擊事件離開時觸發(fā)

4、  Rotate事件:在指定的dom區(qū)域內(nèi),當兩個手指或更多手指成圓型旋轉(zhuǎn)時觸發(fā)(就像兩個手指擰螺絲一樣)。該事件分別對以下事件進行監(jiān)聽并處理:

Rotatestart:旋轉(zhuǎn)開始、Rotatemove:旋轉(zhuǎn)過程、Rotateend:旋轉(zhuǎn)結(jié)束、Rotatecancel:旋轉(zhuǎn)取消

5、  Swipe事件:在指定的dom區(qū)域內(nèi),一個手指快速的在觸屏上滑動。即我們平時用到最多的滑動事件。

Swipeleft:向左滑動、Swiperight:向右滑動、Swipeup:向上滑動、Swipedown:向下滑動

6、Tap事件:在指定的dom區(qū)域內(nèi),一個手指輕拍或點擊時觸發(fā)該事件(類似PC端的click)。該事件最大點擊時間為250毫秒,如果超過250毫秒則按Press事件進行處理。

(以上作者毫無節(jié)奏的摘抄一下,其實我也是費好大勁搜索的呀)
這里注意swipe這個方法;我們不需要因為這個滑動和我們需要的滑動是不一樣的;

Panstart 是我們需要的;

展示一下 div 代碼層;

<v-touch class="ul" 
 v-on:pandown="onPanStart" //向下滑動
 v-on:panmove="onPanmove" //滑動結(jié)束
 v-on:panup="onPandup"> //向上滑動
</v-touch>

注意:也可以進行 事件的限制 用戶多長時間可以執(zhí)行

//我沒用到這句
 v-bind:pan-options="{ direction: 'panup', threshold: 100 }">

首先定一個 公共變量

//省去一些 代碼
var lefthe = 0; //檢測滑動的位置
onPanStart:function(data)
 {
 this.positionjson.transition=''
 console.log(data)
 var y = data.deltaY; //事件執(zhí)行 所滑動的距離
 lefthe = y + this.lefthe; //滑動的距離 記錄到 lefthe 方便下次執(zhí)行
 console.log(lefthe)
 if(lefthe >=50)
 {
 //限制 不能一直往上拉 拉到宇宙呢?我這里是寫死的
  lefthe = 0;
 //回彈效果 在 滑動結(jié)束后 執(zhí)行
 return
 }else{
 }
 this.positionjson.top = lefthe +'px';
 },

滑動結(jié)束 事件

 onPanend:function(data)
 {
 if(lefthe ==0)
 {
 console.log('現(xiàn)在是0')
 this.positionjson.top = lefthe +'px';
 //滑動結(jié)束 執(zhí)行 一些事件 lefthe 0 的時候其實也就是下拉到頂?shù)倪^程
 this.positionjson.transition='0.2s ease 0s'
 }else{
 }
 this.lefthe = lefthe;
 },
//上拉代碼塊
onPandup:function(data)
 {
 var domul =document.getElementById('domul');
 this.positionjson.transition=''
 var y = data.deltaY; //下拉的距離
 var boxheight = this.boxheight; //視圖高度 也就是分辨率
 var liheight = document.getElementById('libox').clientHeight; //左側(cè)每個li的高度
 console.log(liheight+'元素的高')
 var zongheight = this.navapi.list.length * 70; //就能得出li父盒子高度
 var bottomheight = -(zongheight - boxheight) + -100; //計算下拉到 滑動盒子的高度 - 視圖高度 =上拉到底的位置
 if(lefthe <= bottomheight)
 {
 // console.log('到底啦啦啦啦啦')
 return;
 }else{}
 lefthe = y + this.lefthe;
 this.positionjson.top = lefthe +'px';
 },

以上所述是小編給大家介紹的vue 和vue-touch 實現(xiàn)移動端左右導航效果(仿京東移動站導航),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • vscode使用Eslint+Prettier格式化代碼的詳細操作

    vscode使用Eslint+Prettier格式化代碼的詳細操作

    這篇文章主要介紹了vscode使用Eslint+Prettier格式化代碼,本文通過圖文示例代碼相結(jié)合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • Vue項目使用Websocket大文件FileReader()切片上傳實例

    Vue項目使用Websocket大文件FileReader()切片上傳實例

    這篇文章主要介紹了Vue項目使用Websocket大文件FileReader()切片上傳實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • ?用Vue?Demi?構(gòu)建同時兼容Vue2與Vue3組件庫

    ?用Vue?Demi?構(gòu)建同時兼容Vue2與Vue3組件庫

    這篇文章主要介紹了?用Vue?Demi?構(gòu)建同時兼容Vue2與Vue3組件庫,我們通過考慮其功能、工作原理以及如何開始使用它來了解?Vue?Demi,下面我們一起進入文章學起來吧
    2022-02-02
  • vue項目中main.js使用方法詳解

    vue項目中main.js使用方法詳解

    main.js是我們的入口文件,主要作用是初始化vue實例,并引入所需要的插件,下面這篇文章主要給大家介紹了關(guān)于vue項目中main.js使用方法的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • vue實現(xiàn)選項卡案例

    vue實現(xiàn)選項卡案例

    這篇文章主要為大家詳細介紹了vue實現(xiàn)選項卡案例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • vue路由跳轉(zhuǎn)攜帶參數(shù)的方式總結(jié)

    vue路由跳轉(zhuǎn)攜帶參數(shù)的方式總結(jié)

    我們知道在vue中每個頁面都需要在路由中聲明,下面這篇文章主要給大家介紹了關(guān)于vue路由跳轉(zhuǎn)攜帶參數(shù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-10-10
  • vue2.x版本中computed和watch的使用及關(guān)聯(lián)和區(qū)別

    vue2.x版本中computed和watch的使用及關(guān)聯(lián)和區(qū)別

    這篇文章主要介紹了vue2.x版本中computed和watch的使用及關(guān)聯(lián)和區(qū)別,文章圍繞主題展開詳細的內(nèi)容介紹,需要的小伙伴可以參考一下
    2022-07-07
  • ElementUI實現(xiàn)el-table列寬自適應(yīng)的代碼詳解

    ElementUI實現(xiàn)el-table列寬自適應(yīng)的代碼詳解

    這篇文章給大家介紹了ElementUI實現(xiàn)el-table列寬自適應(yīng)的詳細步驟,文中通過代碼示例給大家介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • vue.js層疊輪播效果的實例代碼

    vue.js層疊輪播效果的實例代碼

    這篇文章主要介紹了vue.js層疊輪播效果,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2018-11-11
  • Vuejs 單文件組件實例詳解

    Vuejs 單文件組件實例詳解

    這篇文章主要介紹了Vuejs 單文件組件實例詳解,需要的朋友可以參考下
    2018-02-02

最新評論

肇源县| 富平县| 乐都县| 射阳县| 容城县| 大关县| 阳西县| 霍山县| 包头市| 兴国县| 行唐县| 泰顺县| 兴山县| 赤峰市| 沈阳市| 无为县| 平舆县| 庆元县| 日喀则市| 大渡口区| 石景山区| 梁山县| 吴江市| 肇东市| 合山市| 华容县| 班戈县| 固安县| 开阳县| 定襄县| 共和县| 浦县| 英超| 桦甸市| 酉阳| 射阳县| 临猗县| 尖扎县| 沂水县| 布尔津县| 虹口区|