3

크롬 확장 프로그램을 도청 한 후 페이지 동작 내부의 데이터가 특정 지점에 도달하면 스크롤 막대가 자동으로 팝업에 붙는 것으로 나타났습니다. 그러나 스크롤 막대의 왼쪽으로 내용을 밀어 넣는 대신 가로 스크롤 막대가 활성화되도록 내용을 중첩합니다. 결국 데이터를 검사하고 CSS 클래스를 적용하여 스크롤 막대에 평행하게 실행하고 왼쪽 아래에 내용을 푸시하여 스크롤 막대와 평행하게 실행했습니다. 내 hackish 솔루션 외에도 이것을 처리하는 올바른 방법은 무엇입니까?크롬 확장 스크롤 막대 게재 위치

답변

1

나는이 역시 나 자신을 궁금해하고 있었다. 현재 난 그냥 수평 스크롤바를 팝업의 오른쪽으로 20 픽셀보다 가까운 중요한 물건을 올려 비활성화하지 않습니다

body {overflow-x:hidden;overflow-y:auto;} 

을 따라서 수직 스크롤이 이상 이동하지 않는 내용을 표시 할 때.

+0

유일한 문제는 오버플로를 유발할만큼 충분한 콘텐츠가없는 경우 오른쪽에 빈 공간을 생성한다는 것입니다. 이것은 본질적으로 내가 제안한 해킹 된 해결책 이전에하고 있었던 일입니다. – chrisw

0

아마도 스크롤바에 너비를 지정해야합니다. 수직 스크롤 여부를 감지 할 수있는 아이디어가

<script type="text/javascript"> 
function tweakWidthForScrollbar() { 
    var db = document.body; 
    var scrollBarWidth = db.scrollHeight > db.clientHeight ? 
     db.clientWidth - db.offsetWidth : 0; 
    db.style.paddingRight = scrollBarWidth + "px"; 
} 
</script> 
... 
<body onresize="tweakWidthForScrollbar()"> 

:

::-webkit-scrollbar { 
    width: 42px; //Do not know actual width, but I assume you do 
} 
1

내가 여기에 해킹되지 않습니다 할 수있는 방법을 찾았지만하지 않은 내가 생각할 수있는 가장 간단한 해킹 사용중인 경우, 너비를 계산하고 여분의 여백을 할당합니다.

+0

크롬에서는 작동하지 않습니다. db.clientWidth - db.offsetWidth'는 0을 반환합니다. – w00kie