模拟滚动条控制内容

html代码:

<div id="div1">
    <div id="div2"></div>
</div>

<div id="div3">
    <div id="div4">
        长文本
    </div>
</div>

css代码:

 1 body,div{
 2     margin: 0;
 3     padding: 0;
 4 }
 5 #div1{
 6     width: 30px;
 7     height: 500px;
 8     background: black;
 9     position: absolute;
10     left: 10px;
11     top: 10px;
12 }
13 #div2{
14     width: 30px;
15     height: 30px;
16     background: red;
17     position: absolute;
18     left: 0;
19     top: 0;
20 }
21 #div3{
22     width: 498px;
23     height: 498px;
24     border: 1px solid green;
25     position: absolute;
26     left: 50px;
27     top: 10px;
28     overflow:hidden;
29 }
30 #div4{
31     position: absolute;
32     left: 0;
33     top: 0;
34 }

javascript代码:

window.onload = function(){
    var oDiv1 = document.getElementById("div1");
    var oDiv2 = document.getElementById("div2");
    var oDiv3 = document.getElementById("div3");
    var oDiv4 = document.getElementById("div4");
    
    iMaxTop = oDiv1.offsetHeight - oDiv2.offsetHeight;
    
    oDiv2.onmousedown = function(ev){
        var ev = ev || event;
        var disY = ev.clientY - this.offsetTop;
        
        document.onmousemove = function(ev){
            var ev = ev || event;
            var T = ev.clientY - disY;
            
            if( T < 0 ){
                T = 0;
            }else if( T > iMaxTop ){
                T = iMaxTop;
            }
            
            oDiv2.style.top = T + "px";
            
            var iScale = T / iMaxTop;
            document.title = iScale;
            
            oDiv4.style.top = (oDiv3.offsetHeight - oDiv4.offsetHeight) * iScale + "px";
        }
        
        document.onmouseup = function(){
            document.onmousemove = document.onmouseup = null;
        }
        
        return false;
    }
};
原文地址:https://www.cnblogs.com/haishen/p/7930052.html