屏幕滑动效果

要想让ul下的li一个显示一屏幕,需要让html,body,ul,li的宽度和高度都是100%

下面代码好像有bug,当点击完ol后,用鼠标中轮就不能滚动了呢?
原来是因为 缓动公式 有问题,除不尽,所以就清不了定时器。后面再说!

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        html,body{
            width: 100%;
            height: 100%;
        }
        ul,ol{
            list-style-type: none;
        }
        #ul{
            width: 100%;
            height: 100%;
        }
        #ul li{
            width: 100%;
            height: 100%;
            background-color: pink;
        }
        #ol{
            position: fixed;
            top: 0;
            left: 60px;
        }
        #ol li{
            width: 50px;
            height: 50px;
            border: 1px solid #000;
        }
    </style>
    <script src="my.js" type="text/javascript"></script>
    <script>
        window.onload = function () {
            var ulBox = $("ul");
            var ulBoxLi = ulBox.children;
            var olBox = $("ol");
            var olBoxLi = olBox.children;
            var bgColor = ["pink","purple","orange","green","blue"];
            var start = 0,end =0;
            var timer = null;
            for(var i= 0;i<ulBoxLi.length;i++){
                ulBoxLi[i].style.backgroundColor = bgColor[i];
                olBoxLi[i].style.backgroundColor = bgColor[i];
                olBoxLi[i].index = i;
                olBoxLi[i].onclick = function () {
                    clearInterval(timer);
                    end = ulBoxLi[this.index].offsetTop;
                    timer = setInterval(function(){
                        start = start + (end - start)/10;
                        window.scrollTo(0,start);
                    },30);
                }
            }
        }
    </script>
</head>
<body>
<ul id="ul">
    <li>首页</li>
    <li>第二屏</li>
    <li>第三屏</li>
    <li>第四屏</li>
    <li>第五屏</li>
</ul>
<ol id="ol">
    <li>首页</li>
    <li>第二屏</li>
    <li>第三屏</li>
    <li>第四屏</li>
    <li>第五屏</li>
</ol>
</body>
</html>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值