首页 > Web开发 > 详细

JS按钮控制内容上下滚动

时间:2015-12-05 17:36:24      阅读:192      评论:0      收藏:0      [点我收藏+]

运行效果如下:

技术分享

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS按钮控制内容上下滚动</title>
    <style>
    *{ padding: 0; margin: 0;}
    li{ list-style: none;}
    a{ text-decoration: none; color: #333;}
    a:hover{ color: #f00;}
    .center{ text-align: center; margin-top: 20px; font-family: "Microsoft Yahei";}
    #box{ width: 168px; margin: 20px auto; border: 1px solid #ccc; background: #fff; font-size: 12px; position: relative;}
    #up ,#down{ position: absolute; z-index: 2; cursor: pointer; background: #eee; width: 100%; text-align: center; height: 28px; line-height: 28px;}
    #up{ top: 0;}
    #down{ bottom: 0;}
    .content{ margin-top: 28px; height: 475px; overflow: hidden; position: relative; background: #ccc;}
    #wrap{ position: absolute; top: 0;}
    #wrap ul{ padding: 0 10px;}
    #wrap li{ width: 148px; height: 100px; background: purple; margin-top: 10px;}
    </style>
</head>
<body>
    <h3 class="center">先向上滚动试试,然后向下滚动试试</h3>
    <div id="box">
        <a id="up" href="javascript:;">向上滚动</a>
        <a id="down" href="javascript:;">向下滚动</a>
        <div class="content">
            <div id="wrap">
                <ul>
                    <li></li>
                    <li></li>
                    <li></li>
                    <li></li>
                    <li></li>
                    <li></li>
                </ul>
            </div>
        </div>
    </div>
    <script>
    // 封装getStyle函数
    function getStyle(obj ,attr){
        return obj.currentStyle ? obj.currentStyle[attr] :getComputedStyle(obj ,false)[attr];
    }

    window.onload = function(){
        var oBox = document.getElementById(box);
        // alert(getStyle(oBox,‘width‘))        // 168px
        var oUp = document.getElementById(up);
        var oDown = document.getElementById(down);
        var oWrap = document.getElementById(wrap);
        var num = 0;
        var timer = null;

        // 鼠标按下向上链接,开启定时器
        oUp.onmousedown = function(){
            oWrap.timer = setInterval(function(){
                // 先获取内容的top值[获取的是字符串,所以要用parseInt转换成数字],然后让它每隔300ms减少5px使之向上运动
                var dis = parseInt(getStyle(oWrap,top)) - 5;
                // 这里的200是根据当前案例设置的,可以根据实际情况调整数值
                if( dis < -220){
                    dis = -220;
                }
                oWrap.style.top = dis + px;
            },30);
        };

        // 鼠标移开向上链接,关闭定时器
        oUp.onmouseup = function(){
            clearInterval(oWrap.timer);
        };

        // 鼠标按下向下链接,开启定时器
        oDown.onmousedown = function(){
            oWrap.timer = setInterval(function(){
                var dis = parseInt(getStyle(oWrap,top)) + 5;
                if(dis > 0){
                    dis = 0;
                }
                oWrap.style.top = dis + px;
            },30);
        };

        // 鼠标移开向下链接,关闭定时器
        oDown.onmouseup = function(){
            clearInterval(oWrap.timer);
        };
    };
    </script>
</body>
</html>

 

JS按钮控制内容上下滚动

原文:http://www.cnblogs.com/bokebi520/p/5021874.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!