2014-02-20 67 views
0

我正在使用Jquery脚本来拖动图片(目前只有一个图像)在div内。我目前使用此代码:在div位置可拖动jquery函数

var offset = 0, 
     xPos = 0, 
     yPos = 0; 

$(document).ready(function(){ 
    $(".item").draggable({ 
     containment: '#house_wall1', 

     drag: function(){ 
      offset = $(this).position(); 
      xPos = offset.left; 
      yPos = offset.top; 
      $('#posX').text('x: ' + xPos); 
      $('#posY').text('y: ' + yPos); 
     }, 

     // Find original position of dragged image. 
     start: function(event, ui) { 
      // Show start dragged position of image. 
      var Startpos = $(this).position(); 
      $("div#start").text("START: \nLeft: "+ Startpos.left + "\nTop: " + Startpos.top); 
     }, 

     // Find position where image is dropped. 
     stop: function(event, ui) { 
      // Show dropped position. 
      var Stoppos = $(this).position(); 
      $("div#stop").text("STOP: \nLeft: "+ Stoppos.left + "\nTop: " + Stoppos.top); 
     } 
    }); 
}); 

我的问题是不是可拖动图像不是DIV中,我的问题是位置x和y从屏幕尺寸来计算,而不是股利。这意味着,如果您调整屏幕大小或降低屏幕分辨率,图像实际上会保持与具有另一个分辨率的人不同的x和y位置。如何更改图像位置,以便从div边距跟踪x和y,而不是屏幕大小。提前致谢。

回答

1

使用position()而不是offset()position()给你上/左w.r.t.到元素的父元素而不是文档顶部/左侧。

offset = $(this).position(); 
+0

像上面那样?在这种情况下,我无法再移动图像了,它不再是可拖动的了。 – user3287771

+0

对不起,我错误地理解了你,它现在可以正常工作,使用上面的代码。谢谢! – user3287771