纯html+css+js实现楼层跳转

在这里插入图片描述

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title>楼层跳跃</title>
        <style>
            * {
                padding: 0;
                margin: 0;
            }
            
            ul,
            li {
                list-style: none;
            }
            
            div {
                width: 100%;
                height: 500px;
                line-height: 500px;
                font-size: 100px;
                color: aliceblue;
                text-align: center
                /* border: 1px solid #ccc; */
            }
            
            #side-nav {
                position: fixed;
                left: 10px;
                top: 100px;
            }
            
            #side-nav li {
                width: 60px;
                height: 60px;
                line-height: 60px;
                font-weight: 900;
                text-align: center;
                background-color: #fff;
                border-radius: 10px;
                box-shadow: 2px 1px 3px 0 rgb(26, 25, 25);
                cursor: pointer;
                margin-bottom: 10px;
            } 
            .yellow {
                background-color: yellow !important;
            }
            
            #box1 {
                background-color: red;
            }
            
            #box2 {
                background-color: lightgreen;
            }
            
            #box3 {
                background-color: lightskyblue;
            }
            
            #box4 {
                background-color: lawngreen;
            }
            
            #box5 {
                background-color: lightcoral;
            }
            
            #box6 {
                background-color: lightskyblue;
            }
            
            #box7 {
                background-color: red;
            }
            
            #box8 {
                background-color: lawngreen;
            }
            
            #box9 {
                background-color: lightcoral;
            }
            
            #box10 {
                background-color: lightgreen;
            }
        </style>
        <script type="text/javascript">
            window.onload = function() {
                /*
                    
                    需求:楼层跳跃
                    
                        * 把楼层的高度设置成屏幕的高度
                        * 点击按钮可以跳转到对应楼层
                        * 滚动滑轮,到达临界点的时候,按钮跟着高亮显示
                */
                
                var box = document.getElementById('box');
                var lous = box.getElementsByTagName('div');//楼层
                var sideNav = document.getElementById('side-nav');
                var btns = sideNav.getElementsByTagName('li');//按钮
                
                
                //1.把楼层的高度设置成屏幕的高度
                for(var i = 0; i < lous.length; i++) {
                    lous[i].style.height = window.innerHeight + 'px';
                }
                
                //2.点击按钮可以跳转到对应楼层
                for(var i = 0; i < btns.length; i++) {
                    //绑定索引
                    btns[i].index = i;
                    btns[i].onclick = function() {
//                      console.log(this.index);
                        //排他
                        for(var j = 0; j < btns.length; j++) {
                            btns[j].className = '';
                        }
                        this.className = 'yellow';
                        var ih = lous[this.index].offsetTop;
                        window.scrollTo(0,ih);
                    }
                }
                
                //3.滚动滑轮,到达临界点的时候,按钮跟着高亮显示
                // window.onscroll = function() {
                //     var scrollTop = window.scrollY;//滚动距离
                //     for(var i = 0; i < lous.length; i++) {
                //         if(scrollTop >= lous[i].offsetTop) {
                //             console.log(i);
                //             //排他 设置高亮
                //             for(var j = 0; j < btns.length; j++) {
                //                 btns[j].className = '';
                //             }
                //             btns[i].className = 'yellow';
                //         }
                //     }
                // }
            }
        </script>
    </head>
    <body>
        <div id="box">
            <div id="box1">A</div>
            <div id="box2">B</div>
            <div id="box3">C</div>
            <div id="box4">D</div>
            <div id="box5">E</div>
            <div id="box6">F</div>
            <div id="box7">G</div>
            <div id="box8">H</div>
            <div id="box9">I</div>
            <div id="box10">J</div>
        </div>
        <nav>
            <ul id="side-nav">
                <li class="yellow">F1</li>
                <li>F2</li>
                <li>F3</li>
                <li>F4</li>
                <li>F5</li>
                <li>F6</li>
                <li>F7</li>
                <li>F8</li>
                <li>F9</li>
                <li>F10</li>
            </ul>
        </nav>
    </body>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值