【问题标题】:Dragging element horizontally by 100px increments以 100px 为增量水平拖动元素
【发布时间】:2018-10-13 04:22:25
【问题描述】:

我很难弄清楚这一点。

我有一堆divs(其中包含一些内容),我希望能够水平拖放它们。但是,我想将它们移动 100px 增量(left 位置需要为 0、100、200 等)。想象一下在背景中有一个 100px 宽的单元格的表格,您只能将元素移动到另一个单元格。除了没有桌子。

我认为 jQuery 是不可能的(我正在使用 Vue)。

【问题讨论】:

    标签: javascript html css vue.js


    【解决方案1】:

    我不会为你编写代码,但我会告诉你从哪里开始,帮助你弄清楚。


    首先,监听元素上的mousedownmouseup 事件:

    <div v-on="{ mousedown, mouseup }">Some content</div>
    

    接下来在mousedown 上注册一个mousemove 监听器,并在mouseup 上注销它:

    methods: {
        mousemove(e) {
            const moved = e.offsetX - this.startX;
            // The mouse has moved "moved" pixels.
            // Now calculate whatever you want 
        },
        mousedown(e) {
            this.startX = e.offsetX;
    
            e.currentTarget.addEventListener(this.mousemove);
        },
        mouseup(e) {
            e.currentTarget.removeEventListener(this.mousemove);
        },
    }
    

    【讨论】:

    • 是的,我一直在对此进行试验,并且检查偏移差异似乎效果很好。干杯
    猜你喜欢
    • 2019-07-14
    • 1970-01-01
    • 2012-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多