html中设置某个区域手动上下滚动

<html> 

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

<title>手动滚动</title>
<style type="text/css"> 

    #mybox{ 

        overflow:hidden; 

        background:#CCC; 

        height:100px; 

        width:200px; 

    }
    .up ,.down{ background:#63F;width:200px;} 

</style> 

<script type="text/javascript" src="jquery-1.3.js"></script> 

<script type="text/javascript"> 

    var myTimer; 

    // 速度毫秒值越小速度越快
    var speed=200; 

    // 值越大越快
    var stepSpeed=4; 

    $(function(){ 

        var mybox=$("#mybox"); 

        //向上
        $(".up").bind("mouseover",function(){ 

                var nowPos=mybox[0].scrollTop;//当前值 

                changePos(mybox,nowPos,0); 

            }).bind("mouseout",function(){ 

                if(myTimer){window.clearInterval(myTimer);} 

        }); 

        //向下
        $(".down").bind("mouseover",function(){ 

                var nowPos=mybox[0].scrollTop;//当前值 

                var maxPos=mybox[0].scrollHeight;//最大值 

                changePos(mybox,nowPos,maxPos); 

            }).bind("mouseout",function(){ 

                if(myTimer){window.clearInterval(myTimer);} 

        });
     }); 

        function changePos(box,from,to){ 

            if(myTimer){window.clearInterval(myTimer);} 

            var temStepSpeed=stepSpeed; 

            if(from>to){ 

                myTimer=window.setInterval(function(){ 

                    if(box[0].scrollTop>to)

                     {box[0].scrollTop-=(5+temStepSpeed);} 

                    else{window.clearInterval(myTimer);} 

                    },speed); 

            }else if(from < to){ 

                myTimer=window.setInterval(function(){ 

                    if(box[0].scrollTop<to)

                     {box[0].scrollTop+=(5+temStepSpeed);} 

                    else{window.clearInterval(myTimer);} 
                    },speed);
            } 
        } 
</script> 
</head> 

<body> 
<div class="up">向上</div> 
<div id="mybox"> 
测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容测试内容
</div> 
<div class="down">向下</div> 
</body>
</html>


实现的主要思路:
固定div的宽度和高度,设置CSS的overflow:hidden,然后使用js代码修改div的scrollTop值就可以实现滚动了。
元素内容总高度(若没有设置滚动条,内容可以展开的高度) element.scrollHeight
已被滚动卷去的上方像素 document.body.scrollTop | document.documentElement.scrollTop
元素内容总宽度 (若没有设置滚动条,内容可以展开的宽度)element.scrollWidth
已被滚动卷去的左方像素 document.body.scrollLeft | document.documentElement.scrollLeft

 

可以依据这些实现的其它功能:
动滚动,图片滚动等功能,这是上下滚动,左右滚动的实现应该也没有什么问题了吧

 

原帖地址:http://bbs.chinaunix.net/thread-2297953-1-1.html

上一篇:SAP Spartacus在没有修改用户名和密码的前提下,出现登录错误的原因


下一篇:【Unity3D 灵巧小知识点】 ☀️ | 层级面板中的 ‘小手指‘ 作用: 在Scen中将该物体设置为不可选中状态