2013-05-14 4 views
0

것은 여기 div를 드래그하는 데 도움이되었지만 아래로 스크롤하려는 경우이 코드를 사용하여 스크롤 할 수 없습니다.가로로 스크롤 할 때 jquery draggable 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

Okey를 사용하여이를 해결 내 경우 필요에 따라 블록 그래서 전체

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(); 
}); 
관련 문제