前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Js如何实现当网页超过一屏时导航菜单始终置顶-吸顶盒效果

Js如何实现当网页超过一屏时导航菜单始终置顶-吸顶盒效果

作者头像
itclanCoder
发布2023-02-26 15:04:29
3.3K0
发布2023-02-26 15:04:29
举报
文章被收录于专栏:itclanCoderitclanCoder

前言

我们平时在逛一些电商网站时,无论是首页还是详情页,通常会有一个导航菜单石红跟随着页面,无论是页面滚动到中间还是底部

这是为了方便用户查看商品的各类信息或提交订单购物

也就是吸顶盒效果,那这个效果是怎么实现的?

原生Js

如下是原生js

代码语言:javascript
复制
// 初始化函数
function init() {
    // 获取顶部元素的DOM
    var wrap = document.getElementById("wrap");
    var scrollTop = 0;  // 初始化为顶部
    // 监听页面滚动事件
    window.onscroll = function() {
        // 获取当前的滚动距离
        scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
        // 当超过150像素时,把顶部的导航菜单设置固定
        if(scrollTop > 150) {
            wrap.className = "fix-top";  // 固定顶部的样式
        }else {
            wrap.className = 'wrap';  // 恢复原有的样式
        }
    }
}

如下是css样式

代码语言:javascript
复制
* {
    margin:0;
    padding:0;
}

.wrap {
    width: 100%;
}
.hd {
    width: 980px;
    height: 150px;
    margin: 0 auto;
    background: red;
}

.bd {
    width:980px;
    height: 40px;
    margin: 0 auto;
    background: blue;
}

.fix-top {
    position:fixed;
    width: 100%;
}

.fix-top .hd {
    display:none;
}

如下是html代码

代码语言:javascript
复制
<body style="height:1000px">
    <div id="wrap" class="wrap">
     <div class="hd"></div>
     <div class="bd"></div>
    </div>
</body>

总结

要想实现一个层始终固定在屏幕的顶部或底部,就不得不使用css的positon样式,其次,在来控制网页是不是需要把导航菜单置顶,因为当网页内容的浏览没有滑出导航菜单的可见范围时,是没有必要把导航菜单置顶的,因此,在代码中就需要监听网页的滚动跳滑动事件

当超过一定的范围以后,才有必要为导航菜单设置固定的position样式

其实也有另外一种解决办法,就是导航栏始终是固定在顶部,当拉动滚动条时到一定的范围,就改变背景色,也是一种解决办法

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-01-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 itclanCoder 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档