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

目录
相关文章
|
12月前
|
前端开发
用html+javascript打造公文一键排版系统3:获取参数设置、公文标题排版
用html+javascript打造公文一键排版系统3:获取参数设置、公文标题排版
|
前端开发
HTML+CSS基础知识(6)背景的设置、表格的设计、表单的设计和框架集
这篇文章详细介绍了如何在HTML和CSS中设置背景、设计表格、创建表单以及使用框架集,并通过代码示例和测试结果展示了具体的实现方法和效果。
HTML+CSS基础知识(6)背景的设置、表格的设计、表单的设计和框架集
|
JSON JavaScript 数据格式
文本-----wangEditor的使用,设置和获取内容,展示HTML无样式怎么办????console同步展示怎样写,Vue的配置在Vue3配置文件中的配置,是editor中的v-model绑定的值
文本-----wangEditor的使用,设置和获取内容,展示HTML无样式怎么办????console同步展示怎样写,Vue的配置在Vue3配置文件中的配置,是editor中的v-model绑定的值
|
前端开发 Java UED
设置HTML元素的背景颜色
设置HTML元素的背景颜色
|
Web App开发 编解码 移动开发
HTML页面关于高分屏的设置
HTML页面关于高分屏的设置
107 0
|
JavaScript 前端开发
使用js,html,css实现歌词滚动的效果
使用js,html,css实现歌词滚动的效果
218 0
|
Web App开发 编解码 移动开发
html5移动端页面分辨率设置及相应字体大小设置的靠谱使用方式
html5移动端页面分辨率设置及相应字体大小设置的靠谱使用方式
|
Web App开发 编解码 移动开发
HTML页面关于高分屏的设置
该文章讲述了HTML页面在高分屏环境下遇到的问题,主要涉及`window.innerWidth`和`window.innerHeight`等参数返回物理设备宽度而非实际像素宽度,导致Chrome和Firefox在PC及Android端表现不一致。为解决兼容性问题,文章建议在HTML头部添加`viewport`元标签,设置`width=device-width, initial-scale=1.0`,以确保适配不同设备的高分屏。
120 1
HTML【详解】超链接 a 标签的四大功能(页面跳转、页内滚动【锚点】、页面刷新、文件下载)
HTML【详解】超链接 a 标签的四大功能(页面跳转、页内滚动【锚点】、页面刷新、文件下载)
976 0
|
缓存
html input 如何设置禁止缓存历史记录
html input 如何设置禁止缓存历史记录
332 0