需求:一个定位position:fixed;的菜单栏,移动到底部时依然存在,影响页面美观,我们希望当滚轮移到页面末尾时菜单栏更换为绝对定位。
解决:JS没有直接获取元素距离页面底部距离的函数,因此可利用全文高度-当前高度取得差值来间接判断。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
            <script>
            window.onscroll = function() {
                var t2 = document.body.scrollHeight;
                var t1 = document.documentElement.scrollTop || document.body.scrollTop;
                var t = t2 - t1;
                console.log(t);
                var oBox = document.getElementById("box");
                if (t <= 700) {
                    oBox.className = 'box-b';
                } else {
                    oBox.className = 'box-t';
                }
            };
        </script>
        <style>
            * {
                margin: 0;
                padding: 0;
            }

body {
                height: 1500px;
            }

.box-t {
                height: 100px;
                width: 100px;
                background: #CCC;
                position: fixed;
                /* position: relative; */
                left: 81%;
                top: 83%;
            }

.box-b {
                height: 100px;
                width: 100px;
                background: #6CF;
                position: relative;
                right: -81%;
                bottom: -78%;
            }
        </style>
    </head>
    <body>
        <div id="box" class="box-b"></div>
    </body>
</html>

效果:

滚动条到达一定高度后更换class,实现不再绝对定位。

【浮动导航栏的定位】JS监听动态页面元素距离底部距离,并修改定位样式相关推荐

  1. html 页面自动滚动,js监听html页面的上下滚动事件方法

    最近在一个项目中,在写前端页面的时候,想像以前做Android时在页面时刻监听上下滚动的事件,查找资料发现由鼠标或类似用户动作触发的事件有以下图示: 不多说了,直接上代码了,经过测试可以使用: Dom ...

  2. js监听html页面大小变化,JS监听窗口变化实时获取浏览器窗口大小

    原理:通过监听窗口的变化来动态获取窗口大小 用到的方法:addEventListener() 监听window的resize事件 js代码: // 定义事件侦听器函数 function watchWi ...

  3. js监听html页面大小变化,js实时获取浏览器窗口大小

    js实时获取浏览器窗口大小,我们可以使用addEventListener()方法来实现.该addEventListener()方法可以注册事件处理程序以侦听浏览器窗口resize事件,例如window ...

  4. java计算器监听放大缩小,js监听页面放大缩小

    demo body[zoom='scale']:before{ content: '您的网页处于缩放状态,请按 Ctrl+0 恢复到浏览器默认大小'; z-index: 9999; position: ...

  5. js 监听 安卓事件_百行代码实现js事件监听实现跨页面数据传输

    百行代码实现js事件监听实现跨页面数据传输 使用场景 类似消息队列的使用场景,支持同页面和跨页面通信,发送消息和接收消息 技术原理 跨页面通信: 基于事件监听,通过监听 storage事件监听回调机制 ...

  6. js监听audio播放完毕

    js监听audio播放完毕 <!DOCTYPE html> <html> <head><meta charset="UTF-8">& ...

  7. Vue.js 监听属性简单实例

    Vue.js 监听属性 watch,可以通过 watch 来响应数据的变化. watch:用来监听每一个属性的变化     watch这个对象里面都是函数,函数的名称是data中的属性名称,watch ...

  8. vue 组件属性监听_Vue.js 监听属性

    # Vue.js 监听属性 本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化: ~~~ Vue 测试实例 - 菜鸟教程(runoob.com) ...

  9. 使用Node.JS监听文件夹变化

    使用Node.JS监听文件夹改变有许多应用场合,比如: 构建自动编绎工具 当源文件改变时,自动运行build过程,比如当你写CoffeeScript文件或SASS CSS文件时,保存之后可即时生成对应 ...

  10. 浮动导航栏php源码,JQuery 浮动导航栏实现代码

    JQuery 浮动导航栏 /* 浮动导航栏 Begin */ #floatMenu { padding-top: 5px; background: url(http://img.jb51.net/im ...

最新文章

  1. 台式电脑计算机无法启动 启动修复,Win10启动修复无法修复你的电脑解决方法
  2. 按之字形顺序打印二叉树
  3. 征战蓝桥 —— 2017年第八届 —— C/C++A组第10题——油漆面积
  4. c++语言get:_用C++给R语言加速:Rcpp简单用法
  5. 机器学习学习吴恩达逻辑回归_机器学习基础:逻辑回归
  6. 【做题记录】[NOI2008] 假面舞会—有向图上的环与最长链
  7. 数仓中长跳转问题复现及解决方案
  8. android 通过代码seekbar控制led闪烁_02【pinpong库控制硬件】之Arduino unoLed闪烁1
  9. Swagger注解-@ApiImplicitParams 和 @ApiImplicitParam
  10. 19岁少女辍学就业,却遭身价2.5亿创业公司解雇
  11. 静默安装Oracle11G
  12. 利用ModelBinder防止XSS一次尝试
  13. 4款好用的文献翻译工具推荐
  14. 《Adobe Photoshop CS6中文版经典教程(彩色版)》目录—导读
  15. 管家婆的验证服务器失败,管家婆登陆提示“连接服务器失败”怎么办
  16. 微信小程序前端推送消息通知 -- 需要获取用户订阅权限
  17. 洛谷P2736 “破锣摇滚”乐队 Raucous Rockers
  18. java实现汉字转为拼音
  19. FX5U Socket通信
  20. 十大宽带共享组网方式(转)

热门文章

  1. Android,App 常用图标尺寸规范
  2. 08cms房产门户系统v8.4升级补丁支持新版APP和小程序
  3. 基于51单片机的温度检测监测报警系统设计
  4. MVC+easyui-datagrid之查看详情
  5. 这些JAVA毕业设计拿走不谢
  6. 员工转正述职答辩问什么问题_新员工转正述职答辩PPT
  7. 数据库.数据库管理系统.数据库系统三者之间的关系
  8. 如何在html中下载pdf等文件而不是直接打开
  9. 【SNE-RoadSeg 解读】结合表面法向量的路面分割网络(ECCV2020)
  10. 计算机系统导论与计算机导论,计算机系统导论之学习心得