亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

vue使用better-scroll實(shí)現(xiàn)橫向滾動(dòng)的方法實(shí)例

瀏覽:18日期:2022-09-29 09:16:36
一、滾動(dòng)的實(shí)現(xiàn)原理

better-scroll的滾動(dòng)原理和瀏覽器原生滾動(dòng)原理是一樣的,當(dāng)子盒子的高度大于父盒子的高度,就會(huì)出現(xiàn)縱向滾動(dòng);同理,如果子盒子的寬度大于父盒子的寬度,那么就會(huì)出現(xiàn)橫向滾動(dòng)。

二、better-scroll的 html 結(jié)構(gòu)

先來(lái)看一下 better-scroll 常見(jiàn)的 html 結(jié)構(gòu):

<div class='wrapper'> <ul class='content'> <li>...</li> <li>...</li> ... </ul></div>

BetterScroll應(yīng)用于外部wrapper容器,并且滾動(dòng)部分是content。請(qǐng)注意,wrapper默認(rèn)情況下,BetterScroll處理容器()的第一個(gè)子元素(內(nèi)容)的滾動(dòng),這意味著其他元素將被忽略。

三、在Vue中使用better-scroll

npm install better-scroll --save //npm 安裝import BScroll from ’better-scroll’ //組件文件中引入better-scroll

<template> /* 橫向滾動(dòng) */ /* 這里是父盒子*/<div ref='wrapper'v-else > /* 這里是子盒子,即滾動(dòng)區(qū)域*/<div ref='wrapperChild'> <div v-for='(item, index) in currentImgList' :key='index' > <img :src='http://www.aoyou183.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(); //橫向滾動(dòng) }, methods: { // 初始化 _initScroll() { if (!this.scroll) {this.scroll = new BScroll(this.$refs.wrapper, { // 實(shí)例化BScroll接受兩個(gè)參數(shù),第一個(gè)為父盒子的dom節(jié)點(diǎn) startX: 0, /// 配置的詳細(xì)信息請(qǐng)參考better-scroll的官方文檔,這里不再贅述 click: true, scrollX: true, scrollY: false, // 忽略豎直方向的滾動(dòng) eventPassthrough: 'vertical', useTransition: false // 防止快速滑動(dòng)觸發(fā)的異常回彈}); } else {this.scroll.refresh(); //如果dom結(jié)構(gòu)發(fā)生改變調(diào)用該方法重新計(jì)算來(lái)確保滾動(dòng)效果的正常 } }, // 計(jì)算寬度 _calculateWidth() { // 獲取類名為 imgItem 的標(biāo)簽 let rampageList = this.$refs.wrapperChild.getElementsByClassName('imgItem' ); // 設(shè)置一個(gè)起始寬度 let initWidth = 0; // 遍歷標(biāo)簽 for (let i = 0; i < rampageList.length; i++) {const item = rampageList[i];// 將每一個(gè)標(biāo)簽寬度相加initWidth += item.clientWidth; } // 設(shè)置可滾動(dòng)的寬度 this.$refs.wrapperChild.style.width = `${initWidth}px`; }, slide_x() { this.$nextTick(() => { //this.$nextTick 是一個(gè)異步函數(shù),為了確保 DOM 已經(jīng)渲染完畢this._initScroll(); // 初始化this._calculateWidth(); // 計(jì)算寬度 }); }, }, };</script>

下面是插件原作者說(shuō)的:

vue使用better-scroll實(shí)現(xiàn)橫向滾動(dòng)的方法實(shí)例

四. 容易出現(xiàn)問(wèn)題的點(diǎn): 必須等到頁(yè)面DOM渲染完成再去執(zhí)行BScroll的實(shí)例化,建議在mounted 鉤子函數(shù)里執(zhí)行 子盒子的寬度大于父盒子的寬度 最后

better-scroll插件作者的文章,發(fā)現(xiàn)better-scroll真強(qiáng)大啊!

當(dāng) better-scroll 遇見(jiàn) Vue

在Vue中用better-scroll實(shí)現(xiàn)橫向滾動(dòng)

到此這篇關(guān)于vue使用better-scroll實(shí)現(xiàn)橫向滾動(dòng)的文章就介紹到這了,更多相關(guān)vue better-scroll實(shí)現(xiàn)橫向滾動(dòng)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 网址大全在线免费观看 | 国产精品原创巨作av | 久久只有这才是精品99 | 欧美一区二区三区不卡免费观看 | 国产日韩亚洲 | 找操影院 | 91黄色大片 | 国产精品999 | 日韩射吧| 亚洲在线观看一区 | 性精品 | 久久免费公开视频 | 91欧美激情一区二区三区成人 | 国内精品久久久久影院薰衣草 | 久久久久夜色精品波多野结衣 | 免费国产一区二区在免费观看 | 国产黄色一级片 | 国产精品麻豆入口 | 国产真实乱freesex | 欧美一级毛片特黄大 | 亚洲精品色综合色在线观看 | 国产一区欧美 | 51精品视频在线播放观看 | 真人一级毛片免费观看视频 | 国产美女挤奶水在线观看 | 精品推荐国产麻豆剧传媒 | 欧美视频在线观看免费精品欧美视频 | 伊人久久在线观看 | 国产精品视频无圣光一区 | 亚洲网站大全 | 亚洲免费午夜视频 | 在线视频综合视频免费观看 | 中日韩视频在线看免费观看 | 高清一级做a爱免费视 | 久久9966e这里只有精品 | 黄色毛片电影 | 二区国产 | 免费国产网站 | 九一在线完整视频免费观看 | 国产欧美日韩成人 | 亚洲一级片免费看 |