vue使用better-scroll實現(xiàn)橫向滾動的方法實例
better-scroll的滾動原理和瀏覽器原生滾動原理是一樣的,當子盒子的高度大于父盒子的高度,就會出現(xiàn)縱向滾動;同理,如果子盒子的寬度大于父盒子的寬度,那么就會出現(xiàn)橫向滾動。
二、better-scroll的 html 結(jié)構(gòu)先來看一下 better-scroll 常見的 html 結(jié)構(gòu):
<div class='wrapper'> <ul class='content'> <li>...</li> <li>...</li> ... </ul></div>
BetterScroll應(yīng)用于外部wrapper容器,并且滾動部分是content。請注意,wrapper默認情況下,BetterScroll處理容器()的第一個子元素(內(nèi)容)的滾動,這意味著其他元素將被忽略。
三、在Vue中使用better-scrollnpm install better-scroll --save //npm 安裝import BScroll from ’better-scroll’ //組件文件中引入better-scroll
<template> /* 橫向滾動 */ /* 這里是父盒子*/<div ref='wrapper'v-else > /* 這里是子盒子,即滾動區(qū)域*/<div ref='wrapperChild'> <div v-for='(item, index) in currentImgList' :key='index' > <img :src='http://www.leifengta.com.cn/bcjs/item.img' /> </div></div> </div></template><script> import BScroll from 'better-scroll'; export default { data() { return { currentImgList: [{ img: require('../../assets/image/zzb_1.png') },{ img: require('../../assets/image/zzb_2.png') },{ img: require('../../assets/image/zzb_3.png') } ], }; }, mounted() { this.slide_x(); //橫向滾動 }, methods: { // 初始化 _initScroll() { if (!this.scroll) {this.scroll = new BScroll(this.$refs.wrapper, { // 實例化BScroll接受兩個參數(shù),第一個為父盒子的dom節(jié)點 startX: 0, /// 配置的詳細信息請參考better-scroll的官方文檔,這里不再贅述 click: true, scrollX: true, scrollY: false, // 忽略豎直方向的滾動 eventPassthrough: 'vertical', useTransition: false // 防止快速滑動觸發(fā)的異?;貜梷); } else {this.scroll.refresh(); //如果dom結(jié)構(gòu)發(fā)生改變調(diào)用該方法重新計算來確保滾動效果的正常 } }, // 計算寬度 _calculateWidth() { // 獲取類名為 imgItem 的標簽 let rampageList = this.$refs.wrapperChild.getElementsByClassName('imgItem' ); // 設(shè)置一個起始寬度 let initWidth = 0; // 遍歷標簽 for (let i = 0; i < rampageList.length; i++) {const item = rampageList[i];// 將每一個標簽寬度相加initWidth += item.clientWidth; } // 設(shè)置可滾動的寬度 this.$refs.wrapperChild.style.width = `${initWidth}px`; }, slide_x() { this.$nextTick(() => { //this.$nextTick 是一個異步函數(shù),為了確保 DOM 已經(jīng)渲染完畢this._initScroll(); // 初始化this._calculateWidth(); // 計算寬度 }); }, }, };</script>
下面是插件原作者說的:

better-scroll插件作者的文章,發(fā)現(xiàn)better-scroll真強大??!
當 better-scroll 遇見 Vue
在Vue中用better-scroll實現(xiàn)橫向滾動
到此這篇關(guān)于vue使用better-scroll實現(xiàn)橫向滾動的文章就介紹到這了,更多相關(guān)vue better-scroll實現(xiàn)橫向滾動內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. IntelliJ IDEA安裝插件的方法步驟2. php模擬實現(xiàn)斗地主發(fā)牌3. 理解PHP5中static和const關(guān)鍵字4. spring acegi security 1.0.0 發(fā)布5. vue 使用localstorage實現(xiàn)面包屑的操作6. MyBatis中的JdbcType映射使用詳解7. Vuex localStorage的具體使用8. Python random庫使用方法及異常處理方案9. .Net Core使用Coravel實現(xiàn)任務(wù)調(diào)度的完整步驟10. Vue封裝一個TodoList的案例與瀏覽器本地緩存的應(yīng)用實現(xiàn)

網(wǎng)公網(wǎng)安備