WebKit/Blink에서 MacOS 트랙패드 사용자의 스크롤 막대 숨기기 방지
10.7(Mac OS X Lion) 이후 MacOS에서 WebKit/Blink(Safari/Chrome)의 기본 동작은 트랙패드 사용자가 사용하지 않을 때 스크롤 막대를 숨기는 것입니다.스크롤 막대는 종종 요소를 스크롤할 수 있는 유일한 시각적 신호입니다.
예제(jfidle)
HTML<div class="frame">
Foo<br />
Bar<br />
Baz<br />
Help I'm trapped in an HTML factory!
</div>
CSS
.frame {
overflow-y: auto;
border: 1px solid black;
height: 3em;
width: 10em;
line-height: 1em;
}
WebKit (Chrome) Screenshot
WebKit의 스크롤 가능 요소에 스크롤 막대를 항상 표시하려면 어떻게 해야 합니까?
스크롤 막대의 모양은 WebKit를 사용하여 제어할 수 있습니다.-webkit-scrollbar
사이비 종교의설정을 통해 기본 모양 및 동작을 사용하지 않도록 설정할 수 있습니다.-webkit-appearance
[docs] 에게none
.
기본 스타일을 제거하기 때문에 스타일을 직접 지정해야 합니다. 그렇지 않으면 스크롤 막대가 표시되지 않습니다.다음 CSS는 숨김 스크롤 막대의 모양을 다시 만듭니다.
예제(jfidle)
CSS.frame::-webkit-scrollbar {
-webkit-appearance: none;
}
.frame::-webkit-scrollbar:vertical {
width: 11px;
}
.frame::-webkit-scrollbar:horizontal {
height: 11px;
}
.frame::-webkit-scrollbar-thumb {
border-radius: 8px;
border: 2px solid white; /* should match background, can't be transparent */
background-color: rgba(0, 0, 0, .5);
}
.frame::-webkit-scrollbar-track {
background-color: #fff;
border-radius: 8px;
}
WebKit (Chrome) Screenshot
다음은 전체 웹 사이트에서 스크롤 막대를 다시 활성화하는 짧은 코드입니다.현재 가장 인기 있는 답변과 크게 다른지는 모르겠지만 다음과 같습니다.
::-webkit-scrollbar {
-webkit-appearance: none;
width: 7px;
}
::-webkit-scrollbar-thumb {
border-radius: 4px;
background-color: rgba(0,0,0,.5);
box-shadow: 0 0 1px rgba(255,255,255,.5);
}
다음 링크에서 찾을 수 있습니다. http://simurai.com/blog/2011/07/26/webkit-scrollbar
스크롤 가능한 섹션을 동적으로 추가하는 한 페이지 웹 응용 프로그램의 경우 프로그래밍 방식으로 한 픽셀 아래로 스크롤하고 백업하여 OSX의 스크롤 막대를 트리거합니다.
// Plain JS:
var el = document.getElementById('scrollable-section');
el.scrollTop = 1;
el.scrollTop = 0;
// jQuery:
$('#scrollable-section').scrollTop(1).scrollTop(0);
그러면 시각적 큐 페이딩이 트리거됩니다.
iPhone/iPad에서 브라우저 스크롤 막대가 전혀 작동하지 않습니다.회사에서는 일관된 교차 브라우저 UI를 제공하기 위해 jScrollPane과 같은 사용자 지정 JavaScript 스크롤바를 사용하고 있습니다. http://jscrollpane.kelvinluck.com/
그것은 저에게 매우 잘 맞습니다. 당신은 당신의 사이트 디자인에 맞는 정말 아름다운 맞춤 스크롤바를 만들 수 있습니다.
Lion의 숨겨진 스크롤 막대를 다루는 또 다른 좋은 방법은 아래로 스크롤하라는 메시지를 표시하는 것입니다.텍스트 필드와 같은 작은 스크롤 영역에서는 작동하지 않지만 큰 스크롤 영역에서는 잘 작동하며 사이트의 전체 스타일을 유지합니다.이를 수행하는 한 사이트는 http://versusio.com 입니다. 이 예제 페이지를 확인한 후 1.5초 동안 기다려 다음 메시지를 확인하십시오.
http://versusio.com/en/samsung-galaxy-nexus-32gb-vs-apple-iphone-4s-64gb
구현은 어렵지 않지만 사용자가 이미 스크롤했을 때 프롬프트를 표시하지 않도록 주의해야 합니다.
jQuery + 언더스코어가 필요합니다.
$(window).scroll
합니다.
_.delay()
. 가 너무 거슬리지
$('#prompt_div').fadeIn('slow')
당신의 프롬프트에서 사라지기 위해 그리고 물론.
$('#prompt_div').fadeOut('slow')
때 합니다.
또한 Google Analytics 이벤트를 바인딩하여 사용자의 스크롤 동작을 추적할 수 있습니다.
언급URL : https://stackoverflow.com/questions/7855590/preventing-scroll-bars-from-being-hidden-for-macos-trackpad-users-in-webkit-blin
'programing' 카테고리의 다른 글
@Cacheable 히트 시 스프링 캐시 로깅 (0) | 2023.09.04 |
---|---|
Jquery UI 도구 설명이 HTML 콘텐츠를 지원하지 않습니다. (0) | 2023.09.04 |
Chrome Developer 도구를 통해 Ajax 통화의 HTML 응답 보기? (0) | 2023.09.04 |
Magento - 사용자 입력에 따른 제품 항목 속성 견적/주문 (0) | 2023.09.04 |
스핀 잠금 구현이 올바르고 최적입니까? (0) | 2023.09.04 |