亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

vue-better-scroll 的使用實例代碼詳解

2019-11-19 12:25:13
字體:
來源:轉載
供稿:網友

首先安裝better-scroll

npm i better-scroll -S

goods頁面模板

<template> <div class="goods">  <div class="menu-wrapper" ref="menuWrapper">   <ul>    <li v-for="item in goods" class="menu-item">     <span class="text border-1px">      <span v-show="item.type>0" class="icon" :class="classMap[item.type]"></span>{{item.name}}     </span>    </li>   </ul>  </div>  <div class="foods-wrapper" ref="foodsWrapper">   <ul>    <li v-for="item in goods" >     <h1 class="title">{{item.name}}</h1>     <ul>      <li v-for="food in item.foods" class="food-item border-1px">       <div class="icon">        <img :src="food.icon" alt="" width="57" height="57">       </div>       <div class="content">        <h2 class="name">{{food.name}}</h2>        <p class="desc">{{food.description}}</p>        <div class="extra">         <span class="food-number">月售{{food.sellCount}}份</span>         <span>好評率{{food.rating}}%</span>        </div>        <div class="price">         <span class="nowPrice">¥{{food.price}}</span>         <span class="oldPrice">¥{{food.oldPrice}}</span>        </div>       </div>      </li>     </ul>    </li>   </ul>  </div> </div></template>

js

<script type="text/ecmascript-6"> /* eslint-disable*/  import BScroll from 'better-scroll'export default{  props:{    seller:{      type:Object    }  }, data(){    return{      goods:[]    } }, created(){    this.classMap=['decrease', 'discount', 'special', 'invoice', 'guarantee']    this.$http.get('/api/goods').then((res)=>{      this.goods=res.data.data;      this.$nextTick(()=>{       this._initScroll();      })     console.log(this.$refs.menuWrapper)    }) }, methods:{   _initScroll(){     this.meunScroll=new BScroll(this.$refs.menuWrapper,{});     this.foodsScroll=new BScroll(this.$refs.foodsWrapper,{});  } }}</script>

先用ref 綁定事件, 在vue中 用$ .refs注冊

在鉤子函數 create中 用vue-resource 請求數據,并異步調用方法

this.$nextTick(()=>{       this._initScroll();      }

   注冊方法

_initScroll(){     this.meunScroll=new BScroll(this.$refs.menuWrapper,{});     this.foodsScroll=new BScroll(this.$refs.foodsWrapper,{});  }

better-scroll用法

我們先來看一下 better-scroll 常見的 html 結構:

<div class="wrapper"> <ul class="content">    <li></li>   <li></li>    <li></li>   <li></li>  </ul></div>

當 content 的高度不超過父容器的高度,是不能滾動的,而它一旦超過了父容器的高度,我們就可以滾動內容區了,這就是 better-scroll 的滾動原理。

 import BScroll from 'better-scroll' let wrapper = document.querySelector('.wrapper') let scroll = new BScroll(wrapper, {})

better-scroll 對外暴露了一個 BScroll 的類,我們初始化只需要 new 一個類的實例即可。第一個參數就是我們 wrapper 的 DOM 對象,第二個是一些配置參數。

better-scroll 的初始化時機很重要,因為它在初始化的時候,會計算父元素和子元素的高度和寬度,來決定是否可以縱向和橫向滾動。因此,我們在初始化它的時候,必須確保父元素和子元素的內容已經正確渲染了。如果沒有辦法滑動,那就是初始化的時機不對。

餓了么是這樣處理的:

mounted() {  this.$nextTick(() => {  this.scroll = new Bscroll(this.$refs.wrapper, {}) })   }

this.$nextTick()這個方法作用是當數據被修改后使用這個方法會回調獲取更新后的dom再render出來
如果不在下面的this.$nextTick()方法里回調這個方法,數據改變后再來計算滾動軸就會出錯

上拉刷新功能

<div class="wrapper" ref="wrapper">    <ul class="content" ref="content">     <li v-for="(item,key) in detail" :key="key" v-if="detail.length > 0">      <Row type="flex" justify="start" align="middle">       <Col :span="8" class="detail-item">       <span :class="{'color-red':item.is_delay === 1}">{{item.order_sn}}</span>       </Col>       <Col :span="8" class="detail-item">       <span>{{item.date}}</span>       </Col>       <Col :span="8" class="detail-item">       <span>¥ {{item.partner_profit | number2}}</span>       </Col>      </Row>     </li>     <li v-if="!scrollFinish">      <Row type="flex" justify="center" align="middle">       <Col :span="6" v-if="loadingText">       <p>{{loadingText}}</p>       </Col>       <Col :span="2" v-else>        <Spin size="large"></Spin>       </Col>      </Row>     </li>    </ul>   </div>   mounted() {   // 設置wrapper的高度   this.$refs.wrapper.style.height = document.getElementById("app").offsetHeight - document.getElementById("scroll").offsetTop + "px";   // better-scroll 的content高度不大于wrapper高度就不能滾動,這里的問題是,當一頁數據的高度不夠srapper的高度的時候,即使存在n頁也不能下拉   // 需要設置content的min-height大于wrapper高度   this.$refs.content.style.minHeight = this.$refs.wrapper.offsetHeight + 1 + "px";   this._initScroll();   this.getIncomeDetail(this.nextPage);   // 設置scroll的高度   // this.scrollHeight = document.getElementById("app").offsetHeight - document.getElementById("scroll").offsetTop ;  },  methods:{  _initScroll() {    this.orderScroll = new BScroll(this.$refs.wrapper, {     probeType: 3,       click:true,     pullUpLoad: {  // 配置上啦加載      threshold: -80  //上拉80px的時候加載     },     mouseWheel: {  // pc端同樣能滑動      speed: 20,      invert: false     },     useTransition:false, // 防止iphone微信滑動卡頓    });    // 上拉加載數據    this.orderScroll.on('pullingUp',()=>{     this.scrollFinish = false;     // 防止一次上拉觸發兩次事件,不要在ajax的請求數據完成事件中調用下面的finish方法,否則有可能一次上拉觸發兩次上拉事件     this.orderScroll.finishPullUp();     // 加載數據     this.getIncomeDetail(this.nextPage);    });   }

總結

以上所述是小編給大家介紹的vue-better-scroll 的使用實例代碼詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美黄网免费在线观看| 九九热这里只有精品免费看| 日日狠狠久久偷偷四色综合免费| 欧美大片大片在线播放| 亚洲人午夜精品免费| 91理论片午午论夜理片久久| 亚洲欧美三级伦理| 精品国产乱码久久久久酒店| 国产在线999| 精品无人区太爽高潮在线播放| 久久精品视频一| 美日韩精品免费观看视频| 91a在线视频| 在线性视频日韩欧美| 日韩欧美精品在线观看| 最近日韩中文字幕中文| 国产精品久久久久久久久久三级| 日韩欧美福利视频| 日韩在线不卡视频| 国产精品国产三级国产aⅴ浪潮| 国产精品热视频| 成人看片人aa| 45www国产精品网站| 久久av资源网站| 日韩av成人在线观看| 欧美午夜激情在线| 91午夜理伦私人影院| 久久视频在线观看免费| 国产精品久久综合av爱欲tv| 精品久久久久久久久国产字幕| 欧美精品一区三区| 久久五月情影视| 精品女厕一区二区三区| 亚洲第一福利在线观看| 午夜免费在线观看精品视频| 日韩大陆欧美高清视频区| www日韩中文字幕在线看| 97国产精品免费视频| 欧美性xxxxx极品| 成人激情视频在线观看| 日韩亚洲一区二区| 国产精品电影一区| 亚洲第一色中文字幕| 亚洲色图在线观看| 国产91精品视频在线观看| 日韩视频免费大全中文字幕| 国产欧美日韩综合精品| 国产日韩欧美在线看| 在线观看中文字幕亚洲| 久久亚洲精品国产亚洲老地址| 国产成人精品一区二区三区| 欧美精品在线视频观看| 亚洲伊人成综合成人网| 国产精品嫩草视频| 日韩专区在线观看| 亚洲国产精品福利| 欧美美女操人视频| 欧美另类在线观看| 91成人在线播放| 激情懂色av一区av二区av| 日韩高清电影好看的电视剧电影| 日韩电影中文字幕| 国产精品成人av性教育| 国产最新精品视频| 国产成人综合av| 97色在线观看免费视频| 久久精视频免费在线久久完整在线看| 伊人久久免费视频| 国产精品成人v| 精品国产欧美一区二区三区成人| 国产男女猛烈无遮挡91| 91在线中文字幕| 日韩欧美aⅴ综合网站发布| 亚洲精品欧美日韩专区| 粉嫩av一区二区三区免费野| 免费91麻豆精品国产自产在线观看| 国产精品久久久久久亚洲影视| 成人免费在线视频网址| 精品亚洲永久免费精品| 亚洲精品美女网站| 日韩精品久久久久久久玫瑰园| 亚洲福利影片在线| 91精品一区二区| 91成人精品网站| 操91在线视频| 久久91精品国产| 成人激情视频小说免费下载| 国产精品久久久久久久久久免费| 日韩成人小视频| 亚洲情综合五月天| 成人免费看吃奶视频网站| 亚洲激情视频网站| 日韩精品在线播放| 1769国内精品视频在线播放| 亚洲美女免费精品视频在线观看| 日韩女优在线播放| 国产精品99久久久久久久久久久久| 国产成人在线播放| 亚洲精品wwww| 欧美激情成人在线视频| 亚洲天堂成人在线| 欧美日韩国产一区二区| 不卡av在线播放| 国产欧美日韩最新| 国产日韩欧美视频| 国产一区二区三区精品久久久| 国内精品国产三级国产在线专| 国产97在线播放| 日韩精品极品视频免费观看| 国产精品永久免费视频| 国产欧美日韩视频| 欧美亚洲国产视频| 久久精品免费播放| 中文字幕一区电影| 日本高清久久天堂| 91在线看www| 亚洲欧美日韩一区二区在线| 亚洲色图av在线| 国产91精品不卡视频| 国产ts人妖一区二区三区| www.久久久久| 欧美激情精品久久久久久黑人| 亚洲人成自拍网站| 亚洲成人性视频| 狠狠做深爱婷婷久久综合一区| 91亚洲精品久久久久久久久久久久| 久久久成人精品| 国产亚洲精品美女久久久久| 亚洲天天在线日亚洲洲精| 欧美在线一级视频| 久久理论片午夜琪琪电影网| 亚洲国产精品专区久久| 国产精品久久久久久久天堂| 久久久精品国产一区二区| 亚洲无亚洲人成网站77777| 色妞欧美日韩在线| zzijzzij亚洲日本成熟少妇| 精品国产一区二区三区久久狼黑人| 欧美日韩999| 亚洲va男人天堂| 亚洲国产精品va| 国产精品久久久久免费a∨| 久久久国产在线视频| 日韩精品亚洲元码| 伊人一区二区三区久久精品| 热99在线视频| 亚洲国产精品美女| 国产精品成人v| 色偷偷888欧美精品久久久| 91国偷自产一区二区三区的观看方式| 国外成人在线播放| 日韩欧美精品网址| 久久久这里只有精品视频| 久久精品久久久久久国产 免费| 91爱爱小视频k| 国产精品免费久久久久影院| 国内精品久久影院| 欧美视频免费在线观看| 97久久精品在线| 久久久久久久久电影| 欧美激情精品久久久久久变态| 亚洲国产成人精品久久久国产成人一区| 亚洲激情视频网站| 91在线视频九色|