鼠标滚轮事件
firefox : dommousescroll
e.detail 向下滚动为 3 向上滚动 -3
非firefox : onmousewheel
e.wheeldelta 向下滚动-120 向上滚动120
自定滚动条源码
<!doctype html><html lang=""><head> <meta charset="utf-8"> <title></title> <style> * { margin: 0; padding: 0; } html, body { width: 100%; height: 100%; } #box { width: 100%; height: 100%; overflow: hidden; } .ball { width: 100%; height: 500px; } #scroll { width: 6px; height: 96%; position: fixed; top: 2%; right: 5px; border-radius: 3px; background-color: rgba(235, 233, 233, 0.5); z-index: 9998; opacity: 1; } #scrollbar { position: absolute; z-index: 9999; width: 6px; height: 20px; border-radius: 3px; left: 0; top: 0; background-color: #383838; } </style> </head> <body style="overflow:hidden;"> <div id="box"> <div id="content"> <p class="ball" style="background-color:lightpink;"></p> <p class="ball" style="background-color:blue;"></p> <p class="ball" style="background-color:yellow;"></p> <p class="ball" style="background-color:lightpink;"></p> <p class="ball" style="background-color:blue;"></p> <p class="ball" style="background-color:yellow;"></p> </div> </div> <div id="scroll"> <div id="scrollbar"></div> </div></body></html><script type="text/javascript"> var content = document.getelementbyid("content"); var box = document.getelementbyid("box"); var scroll = document.getelementbyid("scroll"); var scrollbar = document.getelementbyid("scrollbar"); var data = 30; // 浏览器的可视高度减/页面的总高度*滚动栏的总高度=滚动按钮的高度 var _eight; window.onresize = function (){ init(); } function init (){ _height = window.innerheight * scroll.offsetheight / content.offsetheight; scrollbar.style.height = _height + "px"; } init(); //火狐 box.addeventlistener("dommousescroll", function (e) { var e = e || event; if (e.detail > 0) {//向下滚动 box.scrolltop += data; } else {//向上滚动 box.scrolltop -= data; } //浏览器的滚动距离/(页面的总高度-浏览器的可视高度)* (滚动栏的总高度-滚动按钮的高度)= 滚动的距离 var _top = box.scrolltop * (scroll.offsetheight - scrollbar.offsetheight) / (content.offsetheight - window.innerheight); scrollbar.style.top = _top + "px"; }); //非火狐 box.addeventlistener("mousewheel", function (e) { var e = e || event; if (e.wheeldelta > 0) {//向上滚动 box.scrolltop -= data; } else {//向下滚动 box.scrolltop += data; } //浏览器的滚动距离/(页面的总高度-浏览器的可视高度)* (滚动栏的总高度-滚动按钮的高度)= 滚动的距离 var _top = box.scrolltop * (scroll.offsetheight - scrollbar.offsetheight) / (content.offsetheight - window.innerheight); scrollbar.style.top = _top + "px"; }); </script>
相关推荐:
js实现的页面自定义滚动条效果_javascript技巧
原生js封装自定义滚动条的代码案例分享
以上就是js中如何自定义滚动条(附代码)的详细内容。
