发布于2021-05-30 20:27 阅读(961) 评论(0) 点赞(8) 收藏(0)
better-scroll的滚动原理和浏览器原生滚动原理是一样的,当子盒子的高度大于父盒子的高度,就会出现纵向滚动;同理,如果子盒子的宽度大于父盒子的宽度,那么就会出现横向滚动。
先来看一下 better-scroll 常见的 html 结构:
<div class="wrapper">
<ul class="content">
<li>...</li>
<li>...</li>
...
</ul>
</div>
BetterScroll应用于外部wrapper容器,并且滚动部分是content。请注意,wrapper默认情况下,BetterScroll处理容器()的第一个子元素(内容)的滚动,这意味着其他元素将被忽略。
npm install better-scroll --save //npm 安装
import BScroll from 'better-scroll' //组件文件中引入better-scroll
<template>
/* 横向滚动 */
/* 这里是父盒子*/
<div
class="wrapper_box"
style="min-height:100vh;
"
ref="wrapper"
v-else
>
/* 这里是子盒子,即滚动区域*/
<div class="content" ref="wrapperChild">
<div
v-for="(item, index) in currentImgList"
:key="index"
class="imgItem"
>
<img :src="item.img" class="img" style="margin: 0 10px;" />
</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实现横向滚动
原文链接:https://blog.csdn.net/weixin_45811256/article/details/117391558
作者:看看电影票
链接:http://www.phpheidong.com/blog/article/86865/6ac84cf675fe575c8106/
来源:php黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 php黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-4
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!