国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

better-scroll筆記

xcc3641 / 3239人閱讀

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

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

scrollY: true,
click: true

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


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

右側容器:

...


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

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

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

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

}

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

//初始化左側滾動(滑動類默認是沒有點擊的,必須加上click:true才能觸發(fā)事件)
this.menuScroll=new BScroll(this.$refs.menuWrapper,{
    click:true
})
//創(chuàng)建右側的滾動
/*
    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
});
//為右側foodWrapper綁定scroll事件
this.foodScroll.on("scroll",(pos)=>{
    //scrolly中存放實時滾動的坐標
    this.scrolly=Math.abs(Math.round(pos.y));
})

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


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

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

}

關于左側menu current高亮位置的計算
computed:{

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

}

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

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/106458.html

相關文章

  • 19/3/28 學習筆記

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

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

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

    CoderDock 評論0 收藏0
  • Vue 實現網易云音樂 WebApp

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

    Karuru 評論0 收藏0

發(fā)表評論

0條評論

xcc3641

|高級講師

TA的文章

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