美文网首页
楼层跳跃

楼层跳跃

作者: Yuann | 来源:发表于2018-04-07 04:36 被阅读0次
楼层跳跃.gif
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        body,html {
            height: 100%;
        }
        ul {
            list-style: none;
            height: 100%;
        }
        ul li {
            height: 100%;
        }
        ol {
            list-style: none;
            position: fixed;
            top: 80px;
            left: 50px;
        }
        ol li {
            width: 50px;
            height: 50px;
            border: 1px solid #000;
            text-align: center;
            line-height: 50px;
            margin-top: -1px;
            cursor: pointer;
        }
    </style>
</head>
<body>
    <ul>
        <li>鞋子区域</li>
        <li>袜子区域</li>
        <li>裤子区域</li>
        <li>裙子区域</li>
        <li>帽子区域</li>
    </ul>
    <ol>
        <li>鞋子</li>
        <li>袜子</li>
        <li>裤子</li>
        <li>裙子</li>
        <li>帽子</li>
    </ol>

    <script src="animate.js"></script>
    <script>
        //需求:点击ol中的li,屏幕滑动到对应的ul中的li的范围。
        //思路:还是利用window.scrollTo();利用缓动动画原理实现屏幕滑动。
        //步骤:
        //0.获取元素
        //1.指定ul和ol中的li的背景色,对应的li背景色相同
        //2.老三步。(获取元素并绑定事件)
        //3.利用缓动动画原理实现屏幕滑动
        //4.用scroll事件模拟盒子距离最顶端的距离。

        //0.获取元素
        var ul = document.getElementsByTagName("ul")[0];
        var ol = document.getElementsByTagName("ol")[0];
        var ulLiArr = ul.children;
        var olLiArr = ol.children;
        var target = 0;var leader = 0;var timer = null;
        //1.指定ul和ol中的li的背景色,对应的li背景色相同
        //设置一个数组,里面装颜色,然指定的颜色给数组中的指定元素
        var arrColor = ["pink","blue","yellow","orange","green"];
        //利用for循环给两个数组的元素上色
        for(var i=0;i<arrColor.length;i++){
            //上色
            ulLiArr[i].style.backgroundColor = arrColor[i];
            olLiArr[i].style.backgroundColor = arrColor[i];


            //属性绑定索引值
            olLiArr[i].index = i;
            //2.老三步。(并绑定事件)循环绑定,为每一个li绑定点击事件
            olLiArr[i].onclick = function () {
                //***获取目标位置
                    //获取索引值。
                target = ulLiArr[this.index].offsetTop;

                //要用定时器,先清除定时器
                clearInterval(timer);
                //3.利用缓动动画原理实现屏幕滑动
                timer = setInterval(function () {
                    //(1).获取步长
                    var step = (target-leader)/10;
                    //(2).二次处理步长
                    step = step>0?Math.ceil(step):Math.floor(step);
                    //(3).屏幕滑动
                    leader = leader + step;
                    window.scrollTo(0,leader);
                    //(4).清除定时器
                    if(Math.abs(target-leader)<=Math.abs(step)){
                        window.scrollTo(0,target);
                        clearInterval(timer);
                    }
                },25);
            }
        }

        //4.用scroll事件模拟盒子距离最顶端的距离。
        window.onscroll = function () {
            //每次屏幕滑动,把屏幕卷去的头部赋值给leader,模拟获取显示区域距离顶部的距离
            leader = scroll().top;
        }

    </script>


</body>
</html>

相关文章

  • 楼层跳跃

  • 楼层跳跃

  • 楼层

  • 楼层

    早上,太太在刷牙,水槽边的窗户半开半掩,清晨的空气从缝隙中吹过来,清新含着桂香。哦,原来是外面的桂花开了。隔着玻璃...

  • 楼层

    买房的时候也有想过买高层,因为大家都说高层的景观好,空气好,虽然这在看样板间的时候是感觉不到的,但好像那种感觉是很...

  • 诗歌||写给福利院

    ①福利花儿开 岁月的旋律 在铺满鲜花的院内舞蹈 翘首新春的渴盼 昨天的歌 跳跃在楼层间 美颜了记忆的过往 是谁打开...

  • 灰白楼层

    天空像巨大的石灰抹成,深灰浅灰,让人有一种工业森林的冷清和理智感,还有点发白和乏味。 楼顶有一道白色的条状物,细长...

  • 楼层人生

    1 大笨骨子里有股野劲儿,这股野劲儿从小到大一直伴随着大笨,促成了大笨极度外向的性格。大笨一生下来就是个大胖小子,...

  • 楼层效果

  • jQuery楼层

    css代码 HTML代码 jQuery代码

网友评论

      本文标题:楼层跳跃

      本文链接:https://www.haomeiwen.com/subject/dpocpxtx.html