自己设置滚动条
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>无标题文档</title> <style> #div1 {width: 30px; height: 500px; background: black; position: absolute; left: 10px; top: 10px;} #div2 {width: 30px; height: 30px; background: red; position: absolute; left: 0; top: 0; } #div3 {width: 498px; height: 498px; border: 1px solid green; position: absolute; left: 50px; top: 10px;overflow: hidden;} #div4 { position: absolute; left: 0; top: 0;} </style> <script> window.onload = function() { var oDiv1 = document.getElementById('div1'); var oDiv2 = document.getElementById('div2'); var oDiv3 = document.getElementById('div3'); var oDiv4 = document.getElementById('div4'); var iMaxTop = oDiv1.offsetHeight - oDiv2.offsetHeight; //滚动条可以滚动的最大高度=滚动条范围的高度-滚动条的高度 oDiv2.onmousedown = function(ev) { //鼠标点击滚动条执行的函数 var ev = ev || event; //事件的浏览器兼容性 var disY = ev.clientY - this.offsetTop; //鼠标到滚动条顶部的距离=鼠标的top-滚动条的top document.onmousemove = function(ev) { //鼠标移动的时候执行的函数 var ev = ev || event; //事件的浏览器兼容性 var T = ev.clientY - disY; //滚动条到顶部的距离=鼠标的top-鼠标到滚动条顶部的距离 if ( T < 0 ) { //如果超出顶部,距离等于0 T = 0; } else if ( T > iMaxTop ) { //如果距离大于最大值就等于最大值 T = iMaxTop; } oDiv2.style.top = T + 'px'; //滚动条的高度 var iScale = T / iMaxTop; //滚动条滚动距离的百分比 oDiv4.style.top = (oDiv3.clientHeight - oDiv4.offsetHeight) * iScale + 'px'; //文字距离顶部的距离=(文字范围去掉边框的高度-文字的高度)*滚动条比例 } document.onmouseup = function() { document.onmousemove = document.onmouseup = null; //鼠标放开的时候清除鼠标移动的函数 } return false; //清除鼠拖拽的默认事件 } } </script> </head> <body> <div id="div1"><!--滚动条区域--> <div id="div2"></div><!--滚动条--> </div> <div id="div3"> <div id="div4">文字内容</div> </div> </body> </html>