vue使用better-scroll实现横向滚动的方法实例
better-scroll的滚动原理和浏览器原生滚动原理是一样的,当子盒子的高度大于父盒子的高度,就会出现纵向滚动;同理,如果子盒子的宽度大于父盒子的宽度,那么就会出现横向滚动。
二、better-scroll的 html 结构先来看一下 better-scroll 常见的 html 结构:
<div class='wrapper'> <ul class='content'> <li>...</li> <li>...</li> ... </ul></div>
BetterScroll应用于外部wrapper容器,并且滚动部分是content。请注意,wrapper默认情况下,BetterScroll处理容器()的第一个子元素(内容)的滚动,这意味着其他元素将被忽略。
三、在Vue中使用better-scrollnpm install better-scroll --save //npm 安装import BScroll from ’better-scroll’ //组件文件中引入better-scroll
<template> /* 横向滚动 */ /* 这里是父盒子*/<div ref='wrapper'v-else > /* 这里是子盒子,即滚动区域*/<div ref='wrapperChild'> <div v-for='(item, index) in currentImgList' :key='index' > <img :src='https://www.haobala.com/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接受两个参数,第一个为父盒子的dom节点 startX: 0, /// 配置的详细信息请参考better-scroll的官方文档,这里不再赘述 click: true, scrollX: true, scrollY: false, // 忽略竖直方向的滚动 eventPassthrough: 'vertical', useTransition: false // 防止快速滑动触发的异常回弹}); } else {this.scroll.refresh(); //如果dom结构发生改变调用该方法重新计算来确保滚动效果的正常 } }, // 计算宽度 _calculateWidth() { // 获取类名为 imgItem 的标签 let rampageList = this.$refs.wrapperChild.getElementsByClassName('imgItem' ); // 设置一个起始宽度 let initWidth = 0; // 遍历标签 for (let i = 0; i < rampageList.length; i++) {const item = rampageList[i];// 将每一个标签宽度相加initWidth += item.clientWidth; } // 设置可滚动的宽度 this.$refs.wrapperChild.style.width = `${initWidth}px`; }, slide_x() { this.$nextTick(() => { //this.$nextTick 是一个异步函数,为了确保 DOM 已经渲染完毕this._initScroll(); // 初始化this._calculateWidth(); // 计算宽度 }); }, }, };</script>
下面是插件原作者说的:
better-scroll插件作者的文章,发现better-scroll真强大啊!
当 better-scroll 遇见 Vue
在Vue中用better-scroll实现横向滚动
到此这篇关于vue使用better-scroll实现横向滚动的文章就介绍到这了,更多相关vue better-scroll实现横向滚动内容请搜索好吧啦网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好吧啦网!
相关文章: