2013-05-14 115 views
0

事情是,我得到了這個幫助從某人拖動一個div,但如果你想向下滾動/向上它是不可能的,與此代碼,這將不會發生:jquery拖動水平滾動時的bug

$(function() { 
    $("#divname").draggable({ 
     start: function(event) { 
      var content = $("#panel_content"); 

      // if we're scrolling, don't start and cancel drag 
      if (event.originalEvent.pageX-content.offset().left > content.innerWidth()) 
      { 
       $(this).trigger("mouseup"); 
       return false; 
      } 
     } 
    }); 
}); 

現在,我可以嘗試瞭解這項工作如何,似乎相當邏輯,深思熟慮。 我現在應該嘗試獲取offset.top並根據content.innerHeight()驗證它,對不對?像這樣:

event.originalEvent.pageY-content.offset().top > content.innerHeight() 

的是,我已經做了的console.log不斷看到這些價值觀和innerHeight()始終是相同的(1242)不要緊,我是多麼地調整它的大小。這是爲什麼發生?我應該使用另一個函數來獲取div容器的當前高度嗎?

謝謝。

回答

0

歐凱使用解決了這個:如果塊根據我的需求

event.originalEvent.pageY-content.offset().top > parent_content.innerHeight() 

所以整個是:

$(function() { 
    $("#sendmessage-panel-overlay").draggable({ 
     start: function(event) { 
      var content = $("#panel_content"); 
      var parent_container = $("#sendmessage-panel-overlay"); 

      // if we're scrolling, don't start and cancel drag 
      if (event.originalEvent.pageX-content.offset().left > content.innerWidth() || 
        event.originalEvent.pageY-content.offset().top > (parent_container.innerHeight() - 34)) 
      {     
       $(this).trigger("mouseup"); 
       return false; 
      } 
     } 
    }).resizable(); 
});