2011-03-26 84 views
0

我试图让jQuery的一个插件draggabble和它看起来像:jQuery的鼠标在DIV位置

(function($){ 
$.fn.drag = function(){ 

    var element = this; 

    $(element).mousedown(function(){ 

     $(window).bind("mousemove",function(e){ 
      $(element).css({"position" : "absolute"}); 
      $(window).css({"-webkit-user-select": "none"}); 

      var pos = $(element).position(); 


      $(element).css({"left" : e.pageX+"px"}); 
     }); 
    }); 
}; 
})(jQuery); 

但是当鼠标移动()发生在div位置,光标在其左侧顶部角。它的工作原理,但只能从div的左上角。所以我的问题是如何编码CSS,所以当我按下鼠标的按钮,并开始移动光标在屏幕上,拖动只发生在被采取的立场。 jQuery UI做到了这一点,但我无法在他们的代码中找到它。希望你明白这一点。提前致谢!

回答

2

从这个jQuery tutorial你只需要使用关于当前元素的元素偏移量。

var x = e.pageX - this.offsetLeft; 

,比你css()

$(element).css({ 
      "left": (e.pageX - x) + "px" 
      }); 

jsfiddle代码示例。

+0

IT WORKS !!!!谢啦!我花了2天的时间才弄明白这一点。谢谢! – 2011-03-26 17:23:11

0

您将不得不根据游标在元素中的位置来抵消它。