2014-02-20 66 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