vue2 控制滑动列表左右一屏滑动

            <div class="boxx" ref="devInsall">
                <div class="box no_copy">
                    <span class="box-item">1</span>
                    <span class="box-item">容2</span>
                    <span class="box-item">内容3</span>
                    <span class="box-item">动内容4</span>
                    <span class="box-item">滚动内容5</span>
                    <span class="box-item">向滚动内容6</span>
                    <span class="box-item">横向滚动内容7</span>
                    <span class="box-item">是横向滚动内容8</span>
                    <span class="box-item">我是横向滚动内容9</span>
                    <span class="box-item">我是横向滚动内10</span>
                    <span class="box-item">我是横向滚动11</span>
                    <span class="box-item">我是横向滚12</span>
                </div>
            </div>
watch: {
        showEditSupplyGoods() {
            if (this.showEditSupplyGoods) {
                this.$nextTick(() => {
                    this.scrollInit()
                })
            }
        }
    },

methods:{

scrollInit() {
            const boxEle = document.getElementsByClassName('boxx')[0]
            let flag
            let downX
            let scrollLeft
            boxEle.addEventListener('mousedown', function (event) {
                flag = true
                downX = event.clientX
                scrollLeft = this.scrollLeft
            })
            boxEle.addEventListener('mousemove', function (event) {
                if (flag) {
                    let moveX = event.clientX
                    let scrollX = moveX - downX
                    this.scrollLeft = scrollLeft - scrollX
                }
            })
            boxEle.addEventListener('mouseup', function () {
                flag = false
            })
            boxEle.addEventListener('mouseleave', function () {
                flag = false
            })
        },
        leftFn() {
            const container = this.$refs.devInsall
            container.scrollTo({
                left: container.scrollLeft - container.clientWidth,
                behavior: 'smooth'
            })
        },
        rightFn() {
            const container = this.$refs.devInsall
            container.scrollTo({
                left: container.scrollLeft + container.clientWidth,
                behavior: 'smooth'
            })
        }
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值