npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@willie-wan/v-draggable

v1.0.2

Published

拖拽-vue指令

Readme

@willie-wan/v-draggable

Installation

npm install  @willie-wan/v-draggable --save

Examples

1

<div v-draggable>
    可拖拽的容器
</div>

.vue file:

  import { Draggable } from ' @willie-wan/v-draggable'
  ...
  export default {
        directives: {
            Draggable,
        },
  ...

2

<div v-draggable="draggableValue">
    <div :ref="handleId">
        <img src="../assets/move.svg" alt="move">
    </div>
    使用 handler
</div>

.vue file:

  import { Draggable } from ' @willie-wan/v-draggable'
  ...
  export default {
        directives: {
            Draggable,
        },
        data() {
            return {
                handleId: "handle-id",
                draggableValue: {
                    handle: undefined
                }
            };
        },
        mounted() {
            this.draggableValue.handle = this.$refs[this.handleId];
        }
  ...

draggable 参数

指令绑定值参数

handle

Type: HtmlElement | Vue Required: false 可拖动的元素或者组件可以触发拖动的元素,默认值是整个元素,传入具体的HtmlElement则只会在该元素区域驱动才能触发。

onPositionChange

Type: Function(positionDiff,absolutePosition,event) Required: false

拖动时位置改变的回调函数

  import { Draggable } from ' @willie-wan/v-draggable'
  ...
  export default {
        directives: {
            Draggable,
        },
        data() {
            return {
                draggableValue: {
                    onPositionChange: this.onPosChanged
                }
            };
        },
        methods: {
            onPosChanged: function(positionDiff, absolutePosition, event) {
                console.log("left corner", absolutePosition.left);
                console.log("top corner", absolutePosition.top);
            }
        }
  ...

onDragEnd

Type: Function Required: false

拖拽结束时的回调函数,参数同[onPositionChange]

onDragStart

Type: Function Required: false 拖拽开始时回调函数, 参数同[onPositionChange]

resetInitialPos

Type: Boolean Required: false default: undefined

重置为组件挂载前的位置

initialPosition

Type: Position Required: false default: undefined

是否设置为绝对定位

stopDragging

Type: Boolean Required: false default: undefined

是否立即停止拖拽

boundingRect

Type: ClientRect Required: false default: undefined

可拖动矩形区域限制

boundingElement

Type: HtmlElement Required: false default: undefined

是否限制拖动到元素的范围内

boundingRectMargin

Type: MarginOptions Required: false default: undefined

用于定义元素和边界之间的空白

@willie-wan/v-draggable