1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > JavaScript 鼠标滚轮事件(实现导航栏上滚显示)

JavaScript 鼠标滚轮事件(实现导航栏上滚显示)

时间:2021-01-09 17:56:12

相关推荐

JavaScript 鼠标滚轮事件(实现导航栏上滚显示)

文章目录

detail与wheelDelta上下滚动检测隐藏导航栏例子

当在垂直方向滚动页面时就会触发 mousewheel 事件

detail与wheelDelta

判断鼠标滚轮滚动方向在各浏览器的属性不同

现在五大浏览器(IE、Opera、Safari、Firefox、Chrome)中Firefox 使用detail,其余四类使用wheelDelta;两者只在取值上不一致,代表含义一致

detail与wheelDelta只各取两个 值,detail取±3,wheelDelta取±120,两值正负代表的方向相反

在非firefox浏览器中,滚轮向上滚动返回的数值是120,向下滚动返回-120

而在firefox浏览器中,滚轮向上滚动返回的数值是-3,向下滚动返回3

上下滚动检测

var scrollFunc = function (e) {e = e || window.event;if (e.wheelDelta) {//判断浏览器IE,谷歌滑轮事件 if (e.wheelDelta > 0) {//当滑轮向上滚动时alert("滑轮向上滚动");}if (e.wheelDelta < 0) {//当滑轮向下滚动时alert("滑轮向下滚动");}} else if (e.detail) {//Firefox滑轮事件if (e.detail< 0) {//当滑轮向上滚动时alert("滑轮向上滚动");}if (e.detail> 0) {//当滑轮向下滚动时alert("滑轮向下滚动");}}}//给页面绑定滑轮滚动事件//火狐使用DOMMouseScroll绑定鼠标滚动document.addEventListener('DOMMouseScroll', scrollFunc, false);//其他浏览器用mousewheel绑定document.onmousewheel = scrollFunc;

获取滚动方向后可以实现某元素的 下滚隐藏 / 上滚显示

使用js改变css:

document.getElementById(id).style.property = new style

可以在上下滚动时修改displayvisible(根据实际布局)

document.getElementById(id).style.display = none;//document.getElementById(id).style.visibility = hidden;

隐藏导航栏例子

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>body {margin: 0;height: 200vh;background-color: darkcyan;}div#nav {position: fixed;width: 100vw;height: 40px;background-color: blanchedalmond;margin: 0 auto;}</style></head><body><div id="nav"></div><script>var scrollFunc = function (e) {let nav = document.getElementById('nav');e = e || window.event;if (e.wheelDelta) {//判断浏览器IE,谷歌滑轮事件 if (e.wheelDelta > 0) {//当滑轮向上滚动时nav.style.position = "fixed";}if (e.wheelDelta < 0) {//当滑轮向下滚动时nav.style.position = "absolute";}} else if (e.detail) {//Firefox滑轮事件if (e.detail < 0) {//当滑轮向上滚动时nav.style.position = "fixed";}if (e.detail > 0) {//当滑轮向下滚动时nav.style.position = "absolute";}}}document.addEventListener('DOMMouseScroll', scrollFunc, false);document.onmousewheel = scrollFunc; </script></body></html>

此demo更改导航栏的position值,实现不在首页时上滚也能显示导航栏(利用fixed定位)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。