javascript实现固定侧边栏


Posted in Javascript onFebruary 09, 2021

用javascript实现固定侧边栏,供大家参考,具体内容如下

正在学习大前端中,有代码和思路不规范不正确的地方往多多包涵,感谢指教

我们在逛某某商城的时候,或者某些网站的时候,通常会遇到有个东西叫做侧边栏,这个东西会跟随我们浏览器浏览长度来进行变化1,从而实现相对窗口的固定位置1

**代码如下**

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <style>
 .cm{
 position: absolute;
 top: 300px;
 margin-left: 1150px;
 width: 60px;
 height: 130px;
 background-color: pink;
 }
 .w{
 margin: 10px auto;
 width: 80%;
 }
 .head{
 height: 200px;
 background-color: blue;
 }
 .banner{
 height: 400px;
 background-color: green;
 }
 .main{
 height: 1000px;
 background-color: hotpink;
 }
 span {
 display: none;
 /*position: absolute;
 bottom: 0;*/
 }
 </style>
</head>
<body>
 <div class="cm">
 <span class="backTop">返回顶部</span>
 </div>
 <div class="head w">头部区域</div>
 <div class="banner w">banner区域</div>
 <div class="main w">主体区域</div>
 <script>
 var cm=document.querySelector('.cm')
 var banner=document.querySelector('.banner')
 /*console.log(banner.offsetTop)*/
 //被卷曲头部的大小位置,写在外面
 var bannertop=banner.offsetTop
 var cmtop=cm.offsetTop-bannertop
 var main=document.querySelector('.main')
 var goback=document.querySelector('.backTop')
 var maintop=main.offsetTop
 document.addEventListener('scroll',function () {
 //页面被卷去的头部
 /*console.log(window.pageYOffset)*/
 //当卷曲头部大于214,侧边栏改为固定
 if (window.pageYOffset>bannertop){
 cm.style.position='fixed'
 cm.style.top=cmtop+'px'
 }else {
 cm.style.position='absolute'
 cm.style.top='300px'
 }
 if (window.pageYOffset>maintop){
 goback.style.display='block'
 }else {
 goback.style.display='none'
 }
 })
 </script>
</body>
</html>

演示效果

javascript实现固定侧边栏

代码解释

这里用到了document的添加事件scroll,浏览器滚动事件,当滚动时,触发函数。

这里设置了一个变量为bannerTop,是中间那个绿色模块顶部距离页面最上方的距离,然后定义cmtop这个变量,cm为侧边栏到顶部的距离,cmtop=bannerTop-cm.offsetTop。然后判断页面卷曲的长度是否大于中间那个模块距离顶部的距离,意思的页面是否划到中间这个模块,如果划到了中间这个模块,那么让侧边栏的位置固定,然后侧边栏距离顶部的距离相应改变,这里这个情况因为侧边栏与中间拿块是相对静止,所以,未卷到中间区域时,cmtop的值是恒定不变的,当卷到中间区域时,banner。Top的值变为负值,所以cmtop的值在相应的增加,并且把这个增加的值传给侧边栏距离顶部的值,这也就出现了划到中间区域,侧边栏相对静止的情况。如果没有滑倒中间区域,那么侧边栏的位置还是默认的位置。

然后如果划到了最后一个区域则出现‘回到顶部'这四个字在侧边栏上。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQery 渐变图片导航效果代码 漂亮
Jan 01 Javascript
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
May 06 Javascript
jQuery Study Notes学习笔记 (二)
Aug 04 Javascript
jquery判断元素的子元素是否存在的示例代码
Feb 04 Javascript
对js关键字命名的疑问介绍
Apr 25 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
Oct 28 Javascript
javascript trie前缀树的示例
Jan 29 Javascript
Vue.js 表单控件操作小结
Mar 29 Javascript
JS实现520 表白简单代码
May 21 Javascript
Bootstrap模态对话框中显示动态内容的方法
Aug 10 Javascript
vue 解决移动端弹出键盘导致页面fixed布局错乱的问题
Nov 06 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
Nov 05 Javascript
JavaScript实现前端倒计时效果
Feb 09 #Javascript
Vue+Bootstrap实现简易学生管理系统
Feb 09 #Vue.js
JavaScript 获取滚动条位置并将页面滑动到锚点
Feb 08 #Javascript
详解Vue的七种传值方式
Feb 08 #Vue.js
Handtrack.js库实现实时监测手部运动(推荐)
Feb 08 #Javascript
js 执行上下文和作用域的相关总结
Feb 08 #Javascript
微信小程序tab左右滑动切换功能的实现代码
Feb 08 #Javascript
You might like
一个基于phpQuery的php通用采集类分享
2014/04/09 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
权威JavaScript 中的内存泄露模式
2007/08/13 Javascript
Javascript 生成指定范围数值随机数
2009/01/09 Javascript
myeclipse安装jQuery插件的方法
2011/03/29 Javascript
js分解url参数(面向对象-极简主义法应用)
2012/08/09 Javascript
JQuery记住用户名和密码的具体实现
2014/04/04 Javascript
IE6已终止操作问题的2种情况及解决
2014/04/23 Javascript
angularjs的一些优化小技巧
2014/12/06 Javascript
JavaScript实现将UPC转换成ISBN的方法
2015/05/26 Javascript
js调用设备摄像头的方法
2018/07/19 Javascript
深入浅出理解JavaScript高级定时器原理与用法
2018/08/02 Javascript
搭建基于express框架运行环境的方法步骤
2018/11/15 Javascript
JavaScript学习笔记之图片库案例分析
2019/01/08 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
uni-app 自定义底部导航栏的实现
2020/12/11 Javascript
用tensorflow实现弹性网络回归算法
2018/01/09 Python
python实现log日志的示例代码
2018/04/28 Python
numpy给array增加维度np.newaxis的实例
2018/11/01 Python
python 在屏幕上逐字显示一行字的实例
2018/12/24 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
2019/11/08 Python
温泉秘密:Onsen Secret
2020/07/06 全球购物
加拿大品牌鞋包连锁店:Little Burgundy
2021/02/28 全球购物
客户代表自我评价范例
2013/09/24 职场文书
公司新员工的演讲稿注意事项
2014/01/01 职场文书
党校培训思想汇报
2014/01/03 职场文书
民族团结先进个人材料
2014/02/05 职场文书
工程质量月活动方案
2014/02/19 职场文书
促销活动总结范文
2014/04/30 职场文书
报表员工作失误检讨书范文
2014/09/19 职场文书
员工2014年度工作总结
2014/12/09 职场文书
五年级上册复习计划
2015/01/19 职场文书
《圆明园的毁灭》教学反思
2016/02/16 职场文书
SQL 窗口函数实现高效分页查询的案例分析
2021/05/21 SQL Server
ORM模型框架操作mysql数据库的方法
2021/07/25 MySQL
nginx负载功能+nfs服务器功能解析
2022/02/28 Servers