2013-12-19 2 views
7

div가있는 div가 있습니다. 바깥쪽에는 overflow-y: auto;이 있으므로 많은 내부 항목에서 오른쪽 스크롤바가 나타납니다. $('#container').selectable(); 스크롤바 위로 마우스 왼쪽 버튼을 누르면 스크롤하지 않고 점선으로 된 프레임을 표시합니다.jQuery UI 선택 및 스크롤바

이 나는이 솔루션을 발견 : 나는 아래로 스크롤 할 때, 항목이 선택 그만 때문에 JQuery UI Selectable plugin: Make scroll bar not selectable when div overflows

불행하게도, 그것은 나를 위해 작동하지 않습니다. (맨 위의 것들은 계속되지만). 그래서, 질문은 : 스크롤바 ... 음 ... 스크롤 막대, 을 2 div로 컨테이너를 나누지 않고 만드는 방법.

답변

1

나를 위해 잘 작동하는 래퍼 div를 사용하십시오.

.selectable-wrapper { border-radius: 5px; min-height: 200px; max-height: 200px; overflow-y: auto; border: 1px solid #D1D1D1;} 
 

 
.selectable { list-style-type: none;padding: 5px;}
<div class="selectable-wrapper"> 
 
    <ul class="selectable"> 
 

 
    </ul> 
 
</div>

7

글쎄, 모든 브라우저 문제 인 것 같습니다. 스크롤바를 클릭하면 마우스 이벤트가 발생합니다. 이것은 실제 문제입니다. jQuery UI로 문제를 해결할 수 없습니다. jQuery UI .js 파일에서 직접 수정 해 봅니다 (AFAIK가 난독 화되어야하므로 분 버전에는 적용되지 않음).

바로 내가 HasScrollbar() 탐지기와 같은 해킹을 많이 본 것

_mouseDown: function(event) { 

후이 조건

추가, 그런데 왜 그들은 단지 클라이언트를 요약하지 않았다되지 않습니다 너비 (즉, 스크롤 막대가없는)와 오프셋을 문서에 상대적으로 만들고 pageX와 비교합니다. 나를 위해 그것은 완벽하게 작동합니다.