2013-10-01 1 views
1

다음과 같은 시나리오에서 클릭 및 드래그 기능을 피하고 싶습니다.마우스 사용 안 함 스크롤을 피하기 위해 드래그

내가이 개 된 DIV

  1. 래퍼 사업부

    { 폭 : 400 픽셀; 신장 : 400px; overflow-x : hidden;

  2. }
  3. 콘텐츠 DIV

    { 폭 : 1 200 픽셀; 신장 : 400px;/* 참고 폭은 래퍼 DIV의 *의 3 배/ }

콘텐츠 사업부는 래퍼 사업부의 아이입니다. wrapper div는 콘텐츠 div를 표시하는보기 포트로만 작동합니다.

사용자가 버튼을 클릭하면 래퍼로 콘텐츠 div의 적절한 부분을 표시하기 위해 스크롤 위치를 설정합니다. (0-400, 401-800, 801-1200) 그러나 사용자가 마우스 포인터를 클릭하여 드래그하면 래퍼 div가 스크롤 됨 (끌기 때문에). 클릭 및 드래그 할 때이 스크롤을 피하고 싶습니다.

나는 다음과 같은 일을 시도 : 코드 위

var isMouseDown = false; 
function onmousedown(event) { 
    isMouseDown = true; 
} 

function onmouseup(event) { 
    isMouseDown = false; 
} 

function onmousemove(event) { 
    if (isMouseDown) { 
     event.stopPropagation(); 
     event.preventDefault(); 
     event.cancelBubble = true; 
     event.returnValue = false; 
     return false; 
    } 
} 

내게 도움이되지 않습니다.

도움을 주시면 감사하겠습니다.

미리 감사드립니다.

+0

아마도 키보드의 화살표를 사용하면 스크롤 할 수도 있고 스페이스 바를 누르면 화면이 스크롤됩니다. 강조 표시/끌기를 사용하여 스크롤 만하기 전에이를 확인하고 싶을 수 있습니다. –

+0

수직 스크롤이 아닙니다. 또한 overflow-x가 숨겨져 있기 때문에 스크롤 막대가 보이지 않습니다. 따라서 화살표 키와 스페이스는 화면을 좌우로 움직이지 않습니다. 그러나 그 시간을 클릭하고 끌면 스크롤이 발생합니다. 내 UI에서 성가신 화면이 부분적으로 이동합니다. – Sanket

답변

0

래퍼 div가 스크롤 될 때 확인합니다.

"onscroll"이벤트를 추가하고 div가 필요한 위치로 스크롤 할 때 하나의 전역 변수 "shouldScroll"을 true로 설정하고 false로 설정합니다.

사용자가 마우스를 클릭하여 끌면 래퍼 div 스크롤 이벤트가 실행되지만 "shouldScroll"이 true인지 확인한 다음 스크롤을 허용하고 그렇지 않으면 현재 위치로 스크롤합니다.

버튼을 클릭하면 하나의 전역 변수에서 현재 스크롤 위치를 설정합니다.

관련 문제