zoukankan      html  css  js  c++  java
  • dom 输入文字模拟滚动

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>无标题文档</title>
    <style>
    #div1{
        30px;
        height:500px;
        background:#000;
        position:absolute;
        left:10px;
        top:10px;
        }
    #div2{
        30px;
        height:30px;
        position:absolute;
        background:red;
        left:0px;
        top:0px;
        }
    #div3{
        498px;
        border:1px #ccc solid;
        height:498px;
        position:absolute;
        left:50px;
        top:10px;
        overflow:hidden;
        }
    #div4{
        position:absolute;    
        }
    textarea{
        position:absolute;
        left:50px;
        top:550px;
        500px;
        height:200px;
        }            
    </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 otext = document.getElementsByTagName('textarea')[0];
        var ratio = odiv3.clientHeight / odiv4.offsetHeight > 1 ? 1 : odiv3.clientHeight / odiv4.offsetHeight; 
        
        function barheight()
        {
            var ratio = odiv3.clientHeight / odiv4.offsetHeight > 1 ? 1 : odiv3.clientHeight / odiv4.offsetHeight; 
            odiv2.style.height = odiv1.clientHeight * ratio + 'px';
        }
        
        barheight();
        
        otext.onkeyup = function ()
        {
            odiv4.innerHTML = otext.value;
            barheight();
        }
        
        odiv2.onmousedown = function (ev)
        {
            var ev = ev || event;
            var diy = ev.clientY - this.offsetHeight;
            if(odiv2.setCapture)
            {
                odiv2.setCapture();
            }
            document.onmousemove = function (ev)
            {
                var ev = ev || event;
                var T = ev.clientY - diy;
                var maxTop = odiv1.offsetHeight - odiv2.offsetHeight;
                
                if(T < 0 )
                {
                    T = 0;
                }
                if(T > maxTop)
                {
                    T = maxTop;
                }
                odiv2.style.top = T + 'px';
                odiv4.style.top = (odiv3.clientHeight - odiv4.offsetHeight)*(T/maxTop) + 'px';
                
            };
            
            document.onmouseup = function ()
            {
                document.onmousedown = document.onmousemove = null;
                if(odiv2.releaseCapture)
                {
                    odiv2.releaseCapture();
                }
            }
            
            return false;
            
        }
    };
    </script>
    </head>
    
    <body>
        <div id="div1">
            <div id="div2"></div>
        </div>
        <div id="div3">
            <div id="div4"></div>
        </div>
        <textarea placeholder="请在文本框输入文字"></textarea>
    </body>
    </html>
  • 相关阅读:
    谈自由 , ASP.NET Core才是未来?
    asp.net core 实现 api网关 进行 api版本控制
    Oracle查询语句参考
    Go语言
    软件测试
    软件设计的重构、重写、重载
    Office 365-sharepoint online
    Pandas入门
    调用Baidu云、人脸识别接口
    Oracle 11g 安装小记
  • 原文地址:https://www.cnblogs.com/mayufo/p/4240433.html
Copyright © 2011-2022 走看看