成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

better-scroll筆記

xcc3641 / 3265人閱讀

摘要:當設(shè)置為會派發(fā)一個事件,我們會給派發(fā)的參數(shù)加一個私有屬性,值為。但是自定義的事件會阻止一些原生組件的行為。

安裝
npm install better-scroll --save
引入
import BScroll from "better-scroll"
基礎(chǔ)
better-scroll支持多參數(shù)配置,可以在初始化的時候傳入第二個參數(shù)
let scroll = new BScroll(".wrapper",{

scrollY: true,
click: true

})
這樣就實現(xiàn)了一個縱向可點擊的滾動效果
參數(shù)說明:
scrollY:Boolean
當設(shè)置為true的時候,可以開啟縱向滾動
click:Boolean
better-scroll默認會阻止瀏覽器的原生click事件。當設(shè)置為true,better-scroll會派發(fā)一個click事件,
我們會給派發(fā)的event參數(shù)加一個私有屬性_constructed,值為true。
但是自定義的click事件會阻止一些原生組件的行為。
Demo:
實現(xiàn)效果:


滑動右側(cè)左側(cè)對應(yīng)的類別顯示高亮
點擊左側(cè)的類別名稱右側(cè)滑動到對應(yīng)的位置
分析:
(1)高亮顯示通過current類來控制,右側(cè)滑動到不同位置,更新左側(cè)的current顯示
(2)即:實時監(jiān)聽scrollY/將右側(cè)每個類的頂部位置記錄下來
goods.vue
左側(cè)容器:

右側(cè)容器:

...


JS部分:
data部分:
data(){

return {
    //存放右側(cè)foodWrapper容器中,每一個item(li.food-list-hook)距離頂部的height
    listHeight:[],
    //垂直滾動的距離(實時變化的)
    scrolly:0,
    //商品列表
    goods:[]
}

}
初始化部分:
在created方法中需要進行,數(shù)據(jù)的獲取,以及左側(cè)menuWrapper容器和右側(cè)foodWrapper容器的初始化
created(){

//使用vue-resource請求本地數(shù)據(jù),模擬后臺數(shù)據(jù)(注意必須放在static目錄下)
this.$http.get("../static/data.json").then(
    response=>{
     //獲取成功之后執(zhí)行
     response=response.body;
     this.goods=response.goods;
     //為了避免數(shù)據(jù)請求沒有完成,就執(zhí)行foodWrapper和foodWrapper的scroll初始化
     //以及計算current高亮位置的方法就已經(jīng)執(zhí)行,其調(diào)用應(yīng)在數(shù)據(jù)獲取成功之后執(zhí)行
     this.$nextTick(()=>{
         this._initScroll();
         this._calculateHeight()
     })
     
    },
    error=>{
        console.log("調(diào)用失敗"+error)
    }
)

}

methods
_initScroll初始化,實現(xiàn)滾動
_initScroll(){

//初始化左側(cè)滾動(滑動類默認是沒有點擊的,必須加上click:true才能觸發(fā)事件)
this.menuScroll=new BScroll(this.$refs.menuWrapper,{
    click:true
})
//創(chuàng)建右側(cè)的滾動
/*
    probeType:Number 
    默認值0
    可選值:1、2、3
    作用:
    有時候我們需要知道滾動的位置。當probeType為1的時候,會非實時(屏幕滑動超過一定時間后)
    派發(fā)scroll事件;當probeType為2時,會在屏幕滑動的過程中實時的派發(fā)scroll事件
    當probeType為3的時候,不僅在屏幕滑動的過程中,
    而且在momentum滾動動畫運行過程中實時派發(fā)scroll事件
*/
this.foodScroll=new BScroll(this.$refs.foodWrapper,{
    probeType:3
    click:true
});
//為右側(cè)foodWrapper綁定scroll事件
this.foodScroll.on("scroll",(pos)=>{
    //scrolly中存放實時滾動的坐標
    this.scrolly=Math.abs(Math.round(pos.y));
})

}
_calculateHeight計算每一個item(li.food-list-hook)距離頂部的height


點擊左側(cè)菜單,右側(cè)滾動到對應(yīng)的位置
selectMenu(index,event){

//index與foodWrapper中每個li.food-list-hook的index相對應(yīng)
//首先去掉better-scroll自帶的點擊事件
if(!event._constructed){
    return;
}
//獲取所有的li.food-list-hook
let foodList=this.$refs.foodWrapper.getElementsByClassName(
    "food-list-hook"
);
//與左側(cè)點擊元素的下標相對應(yīng)的右側(cè)的某個li.food-list-hook
let el=foodList[index];
//執(zhí)行點擊后滾動到對應(yīng)元素的操作
this.foodScroll.scrollToElement(el,300);

}

關(guān)于左側(cè)menu current高亮位置的計算
computed:{

currentIndex(){
    for(let i=0;iheight&&this.scrolly

}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/106458.html

相關(guān)文章

  • 19/3/28 學(xué)習(xí)筆記

    摘要:它的核心是借鑒的的實現(xiàn),它的設(shè)計基本兼容,在的基礎(chǔ)上又擴展了一些以及做了一些性能優(yōu)化。注銷后,就清除里的信息并跳轉(zhuǎn)到登錄頁面 1 stylus 預(yù)處理 項目文件assets目錄下新建stylus文件夾,新建 *.styl文件: showImg(https://segmentfault.com/img/bVbqy2M);variable.styl 存儲公共樣式,iconfont.sty...

    leeon 評論0 收藏0
  • 前端點滴

    摘要:走在前端的大道上持續(xù)更新,最后更新時間年月日從作用域說開去不再彷徨完全弄懂中的譯文總結(jié)你不知道的妙用深入理解之和中的對象拷貝高度自適應(yīng)的個方法中與區(qū)別中回調(diào)地獄的今生前世細談中的一些設(shè)計模式重溫核心概念和基本用法圖片預(yù)加載及插件編寫實例跨域 走在前端的大道上 持續(xù)更新,最后更新時間2017年6月19日 從 JavaScript 作用域說開去 不再彷徨:完全弄懂JavaScript中的...

    CoderDock 評論0 收藏0
  • Vue 實現(xiàn)網(wǎng)易云音樂 WebApp

    摘要:基于等開發(fā)一款移動端音樂,界面參考了安卓版的網(wǎng)易云音樂布局適配常見移動端。圖標使用阿里巴巴圖標庫,中間的唱片旋轉(zhuǎn)動畫使用了實現(xiàn)。搜索功能實現(xiàn)功能搜索歌手歌單歌曲熱門搜索數(shù)據(jù)節(jié)流上拉刷新保存搜索記錄。 基于 Vue(2.5) + vuex + vue-router + vue-axios +better-scroll + Scss + ES6 等開發(fā)一款移動端音樂 WebApp,UI ...

    Karuru 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<