淘宝固定侧边栏 电梯侧边栏做法

 这是一个淘宝侧边栏电梯的案例。

主要实现的功能:

1.当页面滑到手机栏显示  2.点哪个小li 页面就会滑到哪个模块  3.滑到哪块模块对应的小li变红

 $(function() {
            //当我们点击了小li之后,不需要执行滚到哪里小li变红
            var flag = true;
            var toolTop = $(".shouji").offset().top;
            //到了手机模块显示,
            console.log(toolTop);
            $(window).scroll(function() {
                if ($(document).scrollTop() >= toolTop) {
                    $(".fixedtool").fadeIn();
                } else {
                    $(".fixedtool").fadeOut();
                }

                if (flag) {
                    //页面滚动到哪里就给哪个小li添加current
                    $(".floor .w").each(function(i, ele) {
                        if ($(document).scrollTop() >= $(ele).offset().top) {
                            $(".fixedtool li").eq(i + 1).addClass("current").siblings().removeClass();
                        }
                    })
                }
            })

            //点击哪个小li到哪个模块
            $(".fixedtool li").click(function() {
                flag = false;
                //点击哪个小li哪个变红
                $(this).addClass("current").siblings().removeClass();
                var current = $(".floor .w").eq($(this).index()).offset().top;
                $("body,html").stop().animate({
                    scrollTop: current
                }, function() {
                    flag = true;
                });
            })

        })

 这个结构很重要,

第一个功能,先获取到手机模块距离文本顶部的距离,然后当页面滚动超过这个距离,侧边栏浅入 否则浅出。

第二个功能,获取小li的索引,然后再获取楼层模块距离文本顶部距离的时候将索引传入。这样对应的小li和对应的楼层就关联起来了,最后添加动画 滚动的距离就是当前对应楼层距离文本顶部的距离。

第三个功能,遍历整个楼层 如果页面滚动的距离超过这个楼层距离页面顶部的距离,那么就给当前对应的小li增加红色类。主要的就是遍历楼层中的 i 和ele

最后这样写出来会有一点bug,就是滑动页面小li会闪动。所以我加了节流阀。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值