scrollbar
utils
Cross-Browser JavaScript Scrollbar Detection
-
대부분의 브라우저에서 작동
-
IE9 +, 자동으로 숨겨지는 Mac의 Chrome 에서도 작동
- 이유는 : window.innerWidth 가 IE8 에는 없다
-
const hasScrollbar = window.innerWidth > document.documentElement.clientWidth
- IE8을 지원하지 않으니 에러가 발생하는 것을 막기 위해 아래와 같이 수정
-
let hasScrollbar = false if (document.documentElement) { hasScrollbar = window.innerWidth > document.documentElement.clientWidth }
-
get Scrollbar Width
-
function getScrollbarWidth() { // Creating invisible container const outer = document.createElement('div') outer.style.visibility = 'hidden' outer.style.overflow = 'scroll' // forcing scrollbar to appear outer.style.msOverflowStyle = 'scrollbar' // needed for WinJS apps document.body.appendChild(outer) // Creating inner element and placing it in the container const inner = document.createElement('div') outer.appendChild(inner) // Calculating difference between container's full width and the child width const scrollbarWidth = outer.offsetWidth - inner.offsetWidth // Removing temporary elements from the DOM outer.parentNode.removeChild(outer) return scrollbarWidth }
Controll
이동
window.scrollTo({ top: 1200, behavior: 'smooth' });
style
scrollbar hidden 스크롤바 안 보이게 하기 출처
-ms-overflow-style: none; /* IE and Edge */
scrollbar-width: none; /* Firefox */
&&::-webkit-scrollbar {
/* Hide scrollbar for Chrome, Safari and Opera */
display: none;
}