美文网首页
楼梯效果

楼梯效果

作者: zkzhengmeng | 来源:发表于2019-07-11 10:37 被阅读0次
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>楼梯效果</title>
        <style>
            body,div,ul,li {
                margin: 0;
                padding: 0;
                text-align: center;
                font-weight: bold;
            }
            ul,li {
                list-style-type: none;
            }
            /*楼梯导航列表ul*/
            #floornav {
                width: 32px;
                position: fixed;
                left: 50px;
                top: 150px;
                border: 1px solid #ddd;
                /*最开始楼梯隐藏*/
                display: none;
            }
            #floornav li {
                width: 32px;
                height: 32px;
                position: relative;
                border-bottom: 1px dotted #ddd;
                font-size: 12px;
                text-align: center;
                line-height: 32px;
                cursor: pointer;
            }
            /*top按钮样式,最后一个li*/
            #floornav .lastli {
                background-color: #C00;
                color: #FFF;
            }
            /*悬浮在li之上,让span显示,背景颜色改变*/
            #floornav li:hover span {
                display: block;
                background-color: #C00;
                color: #FFF;
            }
            /*选中的li中的span*/
            #floornav li.select span{
                display: block;
                background-color: #C00;
                color: #FFF;
            }
            /*使用定位覆盖下面的文字*/
            #floornav li span {
                width: 32px;
                position: absolute;
                top: 0;
                left: 0;
                /*避免看到后面的文字*/
                background-color: #FFF;
                display: none;
            }
            #wrap {
                width: 1000px;
                margin: 0 auto;
            }
            #header {
                width: 1000px;
                height: 1000px;
                background-color: #0F0;
                line-height: 1000px;
                font-size: 80px;
            }
            /*楼梯*/
            .Louti {
                height: 600px;
                line-height: 600px;
                font-size: 80px;
            }
            /*底部*/
            #footer {
                height: 400px;
                line-height: 400px;
                background-color: #F00;
                font-size: 80px;
            }
        </style>
    </head>
    <body>
        <!--楼梯按钮-->
            <ul id="floornav">
                <li class="select">
                    1F<span>服饰</span>
                </li>
                <li>
                    2F<span>美妆</span>
                </li>
                <li>
                    3F<span>手机</span>
                </li>
                <li>
                    4F<span>家电</span>
                </li>
                <li>
                    5F<span>数码</span>
                </li>
                <li>
                    6F<span>运动</span>
                </li>
                <li>
                    7F<span>居家</span>
                </li>
                <li>
                    8F<span>母婴</span>
                </li>
                <li>
                    9F<span>食品</span>
                </li>
                <li>
                    10F<span>图书</span>
                </li>
                <li>
                    11F<span>服务</span>
                </li>
                <li class="lastli">
                    Top
                </li>
        </ul>
        <div id="wrap">
            <div id="header">header头部区域</div>
                <div id="content">
                    <div class="Louti" style="background: #cc0033;">
                            服饰
                        </div>
                        <div class="Louti" style="background: #999933;">
                            美妆
                        </div>
                        <div class="Louti" style="background: #ccff33;">
                            手机
                        </div>
                        <div class="Louti" style="background: #006633;">
                            家电
                        </div>
                        <div class="Louti" style="background: #6666cc;">
                            数码
                        </div>
                        <div class="Louti" style="background: #ff6600;">
                            运动
                        </div>
                        <div class="Louti" style="background: #ffff00;">
                            居家
                        </div>
                        <div class="Louti" style="background: #3333ff;">
                            母婴
                        </div>
                        <div class="Louti" style="background: #ff00cc;">
                            食品
                        </div>
                        <div class="Louti" style="background: #669900;">
                            图书
                        </div>
                        <div class="Louti" style="background: #ff66cc;">
                            服务
                    </div>
              </div>
            <div id="footer">footer区域</div>
        </div>
        <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
        <script>
    
            $(function () {
                //1.点击事件
                $("#floornav li").not(".lastli").click(function () {//选取排除包含lastli类名的li即回到顶部
                    //让li选中
                    $(this).addClass("select").siblings().removeClass("select");
                    //滚动
                    var index = $(this).index();
                   // console.log(index);
                    var st = $(".Louti").eq(index).offset().top;
                     console.log(st);
                    //jQuery ,obj.scrollTop ,obj.style.width
                    $("body,html").animate({
                        scrollTop: st
                    });
                });
                //2.检测滚动事件
                var $floors = $(".Louti");
                $(window).scroll(function () {
                    var st = $(this).scrollTop();
                    //让左侧楼梯导航显示或者隐藏
                    if(st<1000) {
                        $("#floornav").fadeOut(400);
                    }
                    else  {
                        $("#floornav").fadeIn(400);
                    }
                    //需要寻找索引
                    //找到临界值  st  < offset().top+$().height()/2
                    //遍历所有的楼梯,找到最先满足临界条件的就是对应的楼层
                    $floors.each(function (index) {
                        var bValue = $floors.eq(index).offset().top+$floors.eq(index).height()/2;
                         console.log(bValue);
                        if(st<bValue) {//找到满足条件的结束即可
                            $("#floornav li").eq(index).addClass("select").siblings().removeClass("select");
                            return false;//结束each遍历
                        }
                    });
                });
    
                //3.回到顶部
                $("#floornav .lastli").click(function () {
                    $("body,html").animate({
                        scrollTop: 0
                    },400);
                });
            });
        </script>
    </body>
    </html>
    
    

    相关文章

      网友评论

          本文标题:楼梯效果

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