zoukankan      html  css  js  c++  java
  • 使用 vue + better-scroll实现横向滚动效果

     

    1、安装better-scroll插件:npm install better-scroll --save

    2、在项目中引用better-scroll对象:import BScroll from 'better-scroll'

    3、例如,看一段代码:

     

    1 <div class="person-wrap" ref="personWrap">
    2   <ul class="person-list" ref="personTab">
    3     <li class="person-item">1</li>
    4     <li class="person-item">2</li>
    5     <li class="person-item">3</li>
    6     <li class="person-item">4</li>
    7     <li class="person-item">5</li>
    8   </ul>
    9 </div>

      

      以上有三个点需要注意,第一个点是外部div是滚动的整个区域,需要通过ref获取dom;
      第二点是ul元素包裹子元素li的父元素,它的宽度是动态的,根据N个子元素的宽度计算得来,因此也需要通过ref获取dom;
      第三点是li元素在实际开发中是不确定的,它的个数以及宽度时刻影响着父元素的宽度。

    4、最后,看一段核心代码:
     1 import BScroll from "better-scroll";
     2 export default {
     3   name: "ReserveInfo",
     4   data() {
     5     return {};
     6   },
     7   created() {
     8     this.$nextTick(() => {
     9       this.personScroll();
    10     });
    11   },
    12   methods: {
    13     personScroll() {
    14       // 默认有六个li子元素,每个子元素的宽度为120px
    15       let width = 6 * 120;
    16       this.$refs.personTab.style.width = width + "px";
    17       // this.$nextTick 是一个异步函数,为了确保 DOM 已经渲染
    18       this.$nextTick(() => {
    19         if (!this.scroll) {
    20           this.scroll = new BScroll(this.$refs.personWrap, {
    21             startX: 0,
    22             click: true,
    23             scrollX: true,
    24             // 忽略竖直方向的滚动
    25             scrollY: false,
    26             eventPassthrough: "vertical"
    27           });
    28         } else {
    29           this.scroll.refresh();
    30         }
    31       });
    32     }
    33   }
    34 }
    
    
    在html中dom全部渲染完毕后,调用this.personScroll()方法,该方法首先为ul父元素的宽度动态赋值;
    接着定义滚动区域对象,设置相关的属性即可。

    尾声

    通过better-scroll我们能轻松的实现横向滚动或者纵向滚动,然而知道怎么用其实并没有什么乱用,

    我们需要明白的是其原理,最后的最后请各位看官移步到better-scroll库设计者有话说,进一步探索better-scroll的奥妙所在。



    [links]:https://www.imooc.com/article/272021

  • 相关阅读:
    紫书 例题 9-2 UVa 437 ( DAG的动态规划)
    紫书 例题 9-1 UVa 1025 ( DAG的动态规划)
    紫书 习题 10-44 UVa 11246 ( 容斥原理)
    2018 NOIP备战计划
    紫书 习题 10-32 UVa 1414 ( 迷之规律)
    HBase简介(很好的梳理资料)
    几种必知的oracle结构图
    hadoop之eclipse环境的配置
    ant&mvn的使用总结
    hadoop2.2.0安装
  • 原文地址:https://www.cnblogs.com/wufenfen/p/13740593.html
Copyright © 2011-2022 走看看