2013-03-15 1 views
2

나는 래퍼를 사용하여 화면에 항목을 그립니다. divoverflow: scroll에 포함 된 그리기 개체의 컨테이너가 있습니다. 모든 브로셔에 을 제외하면 IE 7/8 사용자가 그림을 그릴 때 스크롤하지 않습니다. 그러나 IE 7/8에서 사용자가 드래그 (즉 선 그리기) 할 때 사용자가 가장자리에 가까워지면 자동으로 스크롤합니다. jQuery에 대한 도움을 얻었으며 div의 onscroll 이벤트를 무시하려고 시도했지만 작동하지 않았습니다.HTML을 드래그 할 때 자동 스크롤 방지

jQuery를 사용하고 있지 않으므로 추가 할 수 없습니다.

+0

당신이 한 방향으로 만 이동 싶은가를? 그렇다면 overflow-x 및 overflow-y를 사용해야합니다. –

+0

사용자는 양방향으로 스크롤 할 수 있지만 현재 그리기가 진행되지 않는 경우에만 마우스를 아래쪽으로 움직입니다. – AdamDev

답변

2

때로는 스크롤이 창의 텍스트를 "선택"합니다 (이 SO 페이지의 위에서 아래로 클릭하여 끌어 내 뜻을 알 수 있음). jsFiddle 예제 나 샘플 코드를 보지 않고 문제가된다면 설명에서 알 수 없지만 선택을 해제 할 수는 있습니다.

언급 한대로 jQuery는 옵션이 아닙니다. 그렇다면 disableSelection()을 사용하면됩니다. 바닐라 자바 ​​스크립트 솔루션을

, 시도 : (약간 명확성을 위해 수정)

function disableSelection(target) { 
    if (typeof target.onselectstart != "undefined") { //IE 
     target.onselectstart = function() { 
      return false; 
     }; 
    } else if (typeof target.style.MozUserSelect != "undefined") { //Firefox 
     target.style.MozUserSelect = "none"; 
    } else { //All other ie: Opera 
     target.onmousedown = function() { 
      return false; 
     }; 
    } 
    target.style.cursor = "default"; 
} 

window.onload = function() { 
    disableSelection(document.body); 
}; 

출처 : Disable selection on browser using Javascript

+1

동일한 철학을 사용했지만 본문에서 전체 선택 시작, 나는'document.selection.empty()'를 사용하여'mousemove' 이벤트에서 선택된 항목을 지 웠습니다. – AdamDev