2016-07-27 4 views
0

요소를 위/아래로 드래그 할 수 있습니다. 사용자가 페이지 상단에있는 경우 요소 (div)는 상단에서 50 픽셀이되면 드래그를 멈 춥니 다 (사용자가 맨 아래로 스크롤하면 하단에도 동일).휴대 기기에서 요소 중지 화면에서 벗어남

문제점 : 조금 페이지 아래로 사용자가 스크롤이 다음 DIV이보기에서 드래그 할 수 있습니다합니다. 나는 그것이 위와 아래에서 볼 수 없게되기 전에 멈추고 싶다. 그림 셀 폰 화면에서는 화면의 오른쪽에있는 작은 상자를 위/아래로 끌 수 있지만 페이지를 위/아래로 스크롤 할 때도보기 밖으로 끌 수는 없습니다.

페이지가 스크롤 된 다음 문서 높이, 등등에서 빼내야 할지를 알아야합니다. 아니면 내가 모르는 더 나은 해결책이있을 수 있습니다.

this.makeDraggable = function(){ 
     var docHeight = $(document).height(); 
     var winHeight = $(window).height(); 

     if(eventSupported('touchstart')){ 
      el.addEventListener("touchmove", handleMove, false); 
     } 

     function handleMove(e) { 
      e.preventDefault(); 
      var y = e.changedTouches[0].pageY; 
      var bottom = winHeight - y; 

      if(bottom > 50 && y > 50) 
      $el.offset({ 
       top: y 
      }); 
     } 
    } 

답변

0

해결책을 찾을 수 없습니다 : 여기

는 지금까지 y 축 방향의 사업부 드래그을 만드는이 무엇

this.makeDraggable = function(){ 
     var docHeight = $(document).height(); 
     var winHeight = $(window).height(); 

     if(eventSupported('touchstart')){ 
      el.addEventListener("touchmove", handleMove, false); 
     } 

     function handleMove(e) { 
      e.preventDefault(); 

      var winScroll = $(window).scrollTop(); // scrolled away from top 
      var y = e.changedTouches[0].pageY; 
      var top = winScroll + 50; 
      var bottom = winScroll + winHeight - 50; 

      if(bottom > y && y > top) 
      $el.offset({ 
       top: y 
      }); 
     } 
    } 

$ (창) .scrollTop() + $ (window) .height()는 항상 "window"의 맨 아래에있게됩니다.

관련 문제