js 原生实现鼠标拖动Dom左右滑动

var flag; // 鼠标按下

var downX; // 鼠标点击的x下标

var scrollLeft; // 当前元素滚动条的偏移量

// 开始左右滑动

function setBeatOpenHover(dom) {

        dom.addEventListener("mousedown", mouseMoveDown);

        dom.addEventListener("mousemove", mouseMoveHandler);

        // 鼠标抬起停止拖动

        dom.addEventListener("mouseup", function () {

                flag = false;

        });

        // 鼠标离开元素停止拖动

        dom.addEventListener("mouseleave", function () {

                flag = false;

        });

}

//鼠标按下

function mouseMoveDown(event) {

        flag = true;

        downX = event.clientX; // 获取到点击的x下标

        scrollLeft = this.scrollLeft; // 获取当前元素滚动条的偏移量

}

//鼠标滑动中

function mouseMoveHandler(event) {

        if (flag) { // 判断是否是鼠标按下滚动元素区域

                // 获取移动的x轴

                var moveX = event.clientX;

                // 当前移动的x轴下标减去刚点击下去的x轴下标得到鼠标滑动距离

                var scrollX = moveX - downX;

                // 鼠标按下的滚动条偏移量减去当前鼠标的滑动距离

                this.scrollLeft = scrollLeft - scrollX;

        }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值