2010-07-15 98 views
3

我正在嘗試做一個時間表。時間軸只有很少的動態關鍵幀元素放置在隨機位置上的絕對位置。 有沒有辦法讓上一個和下一個元素相對於可拖動的拖動器?就像「如果#dragger在左邊:55px,下一個元素是.keyframe 102px在左邊:102px,前一個元素是.keyframe 32px在左邊:32px」。jQuery獲取拖動的上一個和下一個元素

我在http://jsfiddle.net/3pXC9/1/有一個演示只是拖動紅色的酒吧,拖動我應該得到它的「兄弟姐妹」的基礎上的位置。

謝謝

回答

2

像這樣?

演示:http://jsfiddle.net/3pXC9/11/

的Javascript使用:

stop: function(event, ui) { 
     var this_left = $(this).position().left; 
     var keyframes = $(".keyframe"); 
     var closest_left = [null,0], closest_right = [null,0]; 

     keyframes.each(function(index) { 

       var t = $(this); 
       var offset = t.position().left - this_left; 
       if (offset >= 0) { 
         if (closest_right[0] == null || offset < closest_right[1]) { 
           closest_right[0] = t; 
           closest_right[1] = offset; 
         } 
       } 
       else { 
         if (closest_left[0] == null || offset > closest_left[1]) { 
           closest_left[0] = t; 
           closest_left[1] = offset; 
         } 
       } 
     }); 
     /* 
     closest_left[0] = closest element to the left (null if none) 
     closest_left[1] = offset relative to the dragger 
     the same goes for closest_right 
     */ 
} 
+0

感謝名單寺門,這個作品! – Mircea 2010-07-15 18:25:29

相關問題