【浮动导航栏的定位】JS监听动态页面元素距离底部距离,并修改定位样式
需求:一个定位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监听动态页面元素距离底部距离,并修改定位样式相关推荐
- html 页面自动滚动,js监听html页面的上下滚动事件方法
最近在一个项目中,在写前端页面的时候,想像以前做Android时在页面时刻监听上下滚动的事件,查找资料发现由鼠标或类似用户动作触发的事件有以下图示: 不多说了,直接上代码了,经过测试可以使用: Dom ...
- js监听html页面大小变化,JS监听窗口变化实时获取浏览器窗口大小
原理:通过监听窗口的变化来动态获取窗口大小 用到的方法:addEventListener() 监听window的resize事件 js代码: // 定义事件侦听器函数 function watchWi ...
- js监听html页面大小变化,js实时获取浏览器窗口大小
js实时获取浏览器窗口大小,我们可以使用addEventListener()方法来实现.该addEventListener()方法可以注册事件处理程序以侦听浏览器窗口resize事件,例如window ...
- java计算器监听放大缩小,js监听页面放大缩小
demo body[zoom='scale']:before{ content: '您的网页处于缩放状态,请按 Ctrl+0 恢复到浏览器默认大小'; z-index: 9999; position: ...
- js 监听 安卓事件_百行代码实现js事件监听实现跨页面数据传输
百行代码实现js事件监听实现跨页面数据传输 使用场景 类似消息队列的使用场景,支持同页面和跨页面通信,发送消息和接收消息 技术原理 跨页面通信: 基于事件监听,通过监听 storage事件监听回调机制 ...
- js监听audio播放完毕
js监听audio播放完毕 <!DOCTYPE html> <html> <head><meta charset="UTF-8">& ...
- Vue.js 监听属性简单实例
Vue.js 监听属性 watch,可以通过 watch 来响应数据的变化. watch:用来监听每一个属性的变化 watch这个对象里面都是函数,函数的名称是data中的属性名称,watch ...
- vue 组件属性监听_Vue.js 监听属性
# Vue.js 监听属性 本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化: ~~~ Vue 测试实例 - 菜鸟教程(runoob.com) ...
- 使用Node.JS监听文件夹变化
使用Node.JS监听文件夹改变有许多应用场合,比如: 构建自动编绎工具 当源文件改变时,自动运行build过程,比如当你写CoffeeScript文件或SASS CSS文件时,保存之后可即时生成对应 ...
- 浮动导航栏php源码,JQuery 浮动导航栏实现代码
JQuery 浮动导航栏 /* 浮动导航栏 Begin */ #floatMenu { padding-top: 5px; background: url(http://img.jb51.net/im ...
最新文章
- 台式电脑计算机无法启动 启动修复,Win10启动修复无法修复你的电脑解决方法
- 按之字形顺序打印二叉树
- 征战蓝桥 —— 2017年第八届 —— C/C++A组第10题——油漆面积
- c++语言get:_用C++给R语言加速:Rcpp简单用法
- 机器学习学习吴恩达逻辑回归_机器学习基础:逻辑回归
- 【做题记录】[NOI2008] 假面舞会—有向图上的环与最长链
- 数仓中长跳转问题复现及解决方案
- android 通过代码seekbar控制led闪烁_02【pinpong库控制硬件】之Arduino unoLed闪烁1
- Swagger注解-@ApiImplicitParams 和 @ApiImplicitParam
- 19岁少女辍学就业,却遭身价2.5亿创业公司解雇
- 静默安装Oracle11G
- 利用ModelBinder防止XSS一次尝试
- 4款好用的文献翻译工具推荐
- 《Adobe Photoshop CS6中文版经典教程(彩色版)》目录—导读
- 管家婆的验证服务器失败,管家婆登陆提示“连接服务器失败”怎么办
- 微信小程序前端推送消息通知 -- 需要获取用户订阅权限
- 洛谷P2736 “破锣摇滚”乐队 Raucous Rockers
- java实现汉字转为拼音
- FX5U Socket通信
- 十大宽带共享组网方式(转)
热门文章
- Android,App 常用图标尺寸规范
- 08cms房产门户系统v8.4升级补丁支持新版APP和小程序
- 基于51单片机的温度检测监测报警系统设计
- MVC+easyui-datagrid之查看详情
- 这些JAVA毕业设计拿走不谢
- 员工转正述职答辩问什么问题_新员工转正述职答辩PPT
- 数据库.数据库管理系统.数据库系统三者之间的关系
- 如何在html中下载pdf等文件而不是直接打开
- 【SNE-RoadSeg 解读】结合表面法向量的路面分割网络(ECCV2020)
- 计算机系统导论与计算机导论,计算机系统导论之学习心得