vue 手机端 better-scroll实现横向滚动

2020-06-30  本文已影响0人  看庭前花开花落_望天上云卷云舒

第一步:页面布局

<template>
<div  class="couponWrap" ref="couponWrap">
    <ul class="coupon" ref="coupon">
                <li>第一张图 </li>
                <li>第一张图</li>
                <li>第一张图</li>
    </ul>
</div>
</template>
<style>
.couponWrap{
  width:100%;
  overflow:hidden
}
.coupon{
white-space: nowrap;//可以让ul里的元素成一排
}
</style>

第二步:业务逻辑

<script>
import BScroll from 'better-scroll'
export default {
created(){
   let timer = setTimeout(() => { // 不嵌套一个定时器会失败
        if (timer) {
          clearTimeout(timer)
          this.couponScrollHandle()
        }
      }, 0)
},
methods:{
 couponScrollHandle () {
        let width = this.recommendList.length * 3.03// 动态计算出滚动区域的大小,前面已经说过了,产生滚动的原因是滚动区域宽度大于父盒子宽度
        if(this.$refs.coupon){
          this.$refs.coupon.style.width = width + 'rem'  // 修改滚动区域的宽度
        }
        this.$nextTick(() => {
          if (!this.couponScroll) {
            this.couponScroll = new BScroll(this.$refs.couponWrap, {
              startX: 0,  // 配置的详细信息请参考better-scroll的官方文档,这里不再赘述
              click: true,
              scrollX: true,
              scrollY: false,
              eventPassthrough: 'vertical'
            })
          } else {
            this.couponScroll.refresh() //如果dom结构发生改变调用该方法
          }
        })
      }
   }
}
</script>
上一篇下一篇

猜你喜欢

热点阅读