亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

better-scroll筆記

xcc3641 / 3289人閱讀

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

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

scrollY: true,
click: true

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


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

右側(cè)容器:

...


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

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

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

//使用vue-resource請(qǐng)求本地?cái)?shù)據(jù),模擬后臺(tái)數(shù)據(jù)(注意必須放在static目錄下)
this.$http.get("../static/data.json").then(
    response=>{
     //獲取成功之后執(zhí)行
     response=response.body;
     this.goods=response.goods;
     //為了避免數(shù)據(jù)請(qǐng)求沒有完成,就執(zhí)行foodWrapper和foodWrapper的scroll初始化
     //以及計(jì)算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初始化,實(shí)現(xiàn)滾動(dòng)
_initScroll(){

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

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


點(diǎn)擊左側(cè)菜單,右側(cè)滾動(dòng)到對(duì)應(yīng)的位置
selectMenu(index,event){

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

}

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

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

}

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/106458.html

相關(guān)文章

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

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

    leeon 評(píng)論0 收藏0
  • 前端點(diǎn)滴

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

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

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

    Karuru 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<