使用 interact.js进行dom拖动

本文介绍了如何在Vue应用中利用interact.js库实现DOM元素的拖动功能,包括安装、引入、API应用和事件监听。通过实例演示了如何设置拖动选项并处理移动和结束事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用 interact.js 进行 dom 拖动

interact.js 是一个非常好用的可以任意拖动元素的库

GitHub: https://github.com/taye/interact.js
官方站点: https://interactjs.io/
在这里插入图片描述

安装,引用

注意interactjsinteract.js 是两个不同的库,这里用的是 interactjs

# npm
npm i interactjs

# yarn
yarn add interactjs

vue 中这样引入

import interact from "interactjs"

使用

使用很简单,

官方API

请添加图片描述

interact()
interact(this.$refs.header) // 这里可以是class名,id,或dom实体,这里直接传入的 dom 对象
    .draggable({
        // enable inertial throwing
        inertia: true,
        // 是否保持 dom 元素在其父 dom 中
        modifiers: [
            interact.modifiers.restrictRect({
                restriction: 'parent',
                endOnly: true
            })
        ],
        // enable autoScroll
        autoScroll: true,

        listeners: {
            // 移动事件
            move: this.dragMoveListener,

            // 移动结束事件
            end: this.dragMoveListener
        }
    })
window.dragMoveListener = this.dragMoveListener

interact 库中返回的 event 跟普通的 mousemove 事件不同
其中的 event.dx event.dy 是鼠标拖动的距离,不再需要自己计算,直接使用即可

methods: {
    dragMoveListener(event){
        // console.log(event)
        this.positionX = this.positionX + event.dx
        this.positionY = this.positionY + event.dy
        console.log(this.positionX, this.positionY)
    },
}

结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十月ooOO

许个愿,我帮你实现

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值