【问题标题】:HTML5: Drag/drop on X-axis and without fade?HTML5:在 X 轴上拖放且不褪色?
【发布时间】:2012-01-19 21:26:32
【问题描述】:

我一直在寻找 HTML5 的拖放示例/教程,但到目前为止,所有这些都涉及一个对象,该对象在被拖动时会逐渐消失,并且不受任何轴的约束。我想知道是否可以拖动实际对象本身而不是它的幽灵,我是否可以将其限制在 X 或 Y 轴上?

谢谢!

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    是的,很容易,只需自己编写即可。

    elem.onmousedown = function(e) {
        e = e || window.event;
        var start = 0, diff = 0;
        if( e.pageX) start = e.pageX;
        else if( e.clientX) start = e.clientX;
    
        elem.style.position = 'relative';
        document.body.onmousemove = function(e) {
            e = e || window.event;
            var end = 0;
            if( e.pageX) end = e.pageX;
            else if( e.clientX) end = e.clientX;
    
            diff = end-start;
            elem.style.left = diff+"px";
        };
        document.body.onmouseup = function() {
            // do something with the action here
            // elem has been moved by diff pixels in the X axis
            elem.style.position = 'static';
            document.body.onmousemove = document.body.onmouseup = null;
        };
    }
    

    【讨论】:

    • 哇太棒了!非常感谢!
    • 看起来evt 应该是e?如evt.pageXevt.clientX
    • 这可以在移动设备上使用吗?喜欢点击或滑动事件?
    • 稍微调整一下,是的。您将需要使用touchstart/touchmove/touchend 事件,并参考e.touches[0].pageX
    • 当一个简单易读的代码被发布作为答案时,我无法表达我的感受,伟大的 sn-p 兄弟!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 2016-11-12
    • 2013-08-06
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    • 2022-01-19
    相关资源
    最近更新 更多