首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用javascript的可拖动DIV

使用javascript的可拖动DIV
EN

Stack Overflow用户
提问于 2012-06-05 20:02:21
回答 2查看 173关注 0票数 3

我想让div成为可拖动的,我知道这可以使用Jquery插件来实现,但我不想使用,因为我只需要可拖动的函数。那么,我如何才能使可拖动函数我已经做到了呢?

代码语言:javascript
复制
$(document).ready(function(e){
                $("#eve").mousemove(function(e){
                    var p=$(this);
                    var offset = p.offset();
                    var ol=offset.left;
                    var ot=offset.top;
                    var l=e.pageX-ol;
                    var t=e.pageY-ot;
                    var eX=e.pageX;
                    var eY=e.pageY;
                    var htm="left:"+ol+" top:"+ot+"<br/>";
                    htm+="eX:"+eX+" eY:"+eY+"<br/>";
                    htm+="curX:"+l+" curY:"+t+"<br/>";
                    htm+="l:"+(ol-l)+" t:"+(ot-t);
                    p.html(htm);
                   p.css({left:((eX-3))+"px",top:((eY-3))+"px"});
                });
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-05 20:06:10

您需要定义多个函数来处理mousedown事件来启动拖动,定义mouseup来停止拖动,并定义适当的mousemove来处理拖动时的移动,请检查我找到的https://gist.github.com/1330150的要点

票数 0
EN

Stack Overflow用户

发布于 2012-06-05 20:16:44

这是我的快速即兴表演。也许这就是你要找的。

代码语言:javascript
复制
$("div").on({
    mousemove: function(e) {
        var el = $(this);
        var data = el.data("down");
        if (data) {
            el.css({
                left: e.pageX - data.left,
                top: e.pageY - data.top
            });
        }
    },
    mousedown: function(e) {
        var el = $(this);
        var pos = el.offset();
        el.data("down", {
            left: e.pageX - pos.left,
            top: e.pageY - pos.top
        });
    },
    mouseup: function() {
        $(this).data("down", false);
    }
});​

演示: http://jsfiddle.net/UBKBb/

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10896949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档