onscroll是浏览器的滑动监听事件,当滑动鼠标或者拖动滚动条的时候,就会触发onscroll事件。
scrollTop指的是浏览器页面卷起的高度。
对于scrollTop来说,有两种获取方法

  1. 使用document.documentElement.scrollTop获取
  2. 使用document.body.scrollTop获取

使用这两种方法都可以获取到浏览器卷起的高度,区别是:
方法1必须在页面写有DOCTYPE标签时才能获取到,而方法2必须在页面没有DOCTYPE的情况下才可以生效。
对于这两个方法来说,使用但不生效的时候,不会报错,那我们也可以使用短路表达式来获取浏览器卷起的高度,这样不管页面存不存在DOCTYPE的情况下都可以获取到页面卷起的高度。

var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;

案例:
需求
开始时 顶部的导航条 和 top按钮 不显示,当页面卷起一定的高度时显示
当页面再往上滑动的时候会再隐藏当航条和按钮

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><link rel="stylesheet" href="../reset.css"><style>body{height: 2000px;}#top{width: 100%;height: 50px;background-color: burlywood;display: none;position: fixed;}#toTop{width: 50px;height: 50px;background-color: #ccc;position: fixed;bottom: 30px;right: 30px;text-align: center;line-height: 50px;cursor: pointer;opacity: 0;transition: .5s linear;}#top.active{display: block;}#toTop.active{opacity: 1;}</style>
</head>
<body><div id="top"></div><div id="toTop">TOP</div><script>//获取元素var topBar = document.getElementById('top');var toTop = document.getElementById('toTop');//添加滚动事件window.onscroll = function () {//使用兼容的方法获取浏览器页面卷起的高度var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;// console.log(scrollTop);//如果卷起的高度大于300即显示if(scrollTop >= 300){topBar.classList.add('active');toTop.classList.add('active');}//小于300即隐藏else if(scrollTop < 300){topBar.classList.remove('active');toTop.classList.remove('active');}//回到顶部的点击事件toTop.onclick = function () {window.scrollTo({top: 0,behavior: 'smooth'});}}  </script>
</body>
</html>

JavaScript onscroll和scrollTop相关推荐

  1. JavaScript中的scrollTop(js中的scrollTop,滚动到顶部,javascript滚动到顶部)

    简述:scrollTop是JavaScript中一个非常有用且重要的方法,它用于获取或设置元素的垂直滚动条位置,实现各种滚动相关的功能,无论是回到顶部.滚动到指定位置还是监听滚动事件,都需要用到scr ...

  2. JS使用onscroll、scrollTop实现图片懒加载

    今天做到项目中的图片展示,由于每一页的图片数量都很多,因此需要为图片的展示设计一种懒加载的功能. 第一要做的当然就是给程序添加滚动监听事件. 1 //触发拉取图片开关,保证正在拉取时不能再次触发 2 ...

  3. 原生态纯JavaScript 100大技巧大收集

    来自:http://yonghu.blog.51cto.com/8166136/1346946 1.原生JavaScript实现字符串长度截取 1 2 3 4 5 6 7 8 9 10 11 12 1 ...

  4. 原生态纯JavaScript 100大技巧大收集---你值得拥有

    原生态纯JavaScript 100大技巧大收集---你值得拥有 1.原生JavaScript实现字符串长度截取 function cutstr(str, len) {var temp;var ico ...

  5. mysql插入ㄖ_原生JavaScript代码100个实例

    1.原生JavaScript实现字符串长度截取 function cutstr(str, len) { var temp; var icount = 0; var patrn = /[^\x00-\x ...

  6. 加入收藏代码_100个原生JavaScript代码片段知识点详细汇总【实践】

    作者:小棋子js 转发链接:https://www.jianshu.com/p/b5171efa340f JavaScript 是目前最流行的编程语言之一,正如大多数人所说:"如果你想学一门 ...

  7. 100个直接可以拿来用的JavaScript实用功能代码片段(转)

    把平时网站上常用的一些实用功能代码片段通通收集起来,方面网友们学习使用,利用好的话可以加快网友们的开发速度,提高工作效率. 目录如下: 1.原生JavaScript实现字符串长度截取 2.原生Java ...

  8. 使用JavaScript制作页面效果3

    一. 1.下拉列表:select对象 属性: option[ ]:选项数组 selectedIndex:被选中选项的索引号 length:选项总数 方法: add(option对象,添加位置):增加选 ...

  9. 详细的JavaScript知识梳理和经典的一百个例题,让你掌握JavaScript

    这里先做一下JavaScript知识点的梳理,具体的可领取资料 JavaScript语法: js语法.png DOM操作: DOM操作.png 数据类型 面向对象 继承 闭包 插件 作用域 跨域 原型 ...

最新文章

  1. 2021全国高校计算机能力挑战赛(初赛)C语言试题四
  2. python 二项分布_Python绘制的二项分布概率图示例
  3. “IIS配置401错误”完美解决方案
  4. mysql 问号作用_什么是MySQL中的问号的意义“WHERE column =?”?
  5. 【人物】乔布斯:A级人才的自尊心不需要你呵护
  6. 肝了我好久,《Python知识手册V1.0》出来了!!!
  7. 汇编语言 修改显存 在屏幕上显示图案
  8. hyperterminal使用教程_如何在Win7中安装使用超级终端Hyper Terminal(转)
  9. java编译多个包_javac一次性编译多个包下的.java文件
  10. python写入并获取剪切板内容_python写入并获取剪切板内容
  11. [JSOI2007]建筑抢修 (贪心)
  12. 统计c语言中英文字幕,C语言日记——递归
  13. Analytics API and Customer Data Platform | Segment
  14. SPECT、PET、CT与MRI成像原理及其特点的比较
  15. xshell怎么上传文件
  16. learning ddr tRP and tRP tRTP CL tRAS
  17. Ubuntu 16.04 配置 TITAN xp, CUDA 及 cuDNN
  18. 洛谷T46780 ZJL 的妹子序列(生成函数)
  19. 人工智能——离线情况下自动给视频添加字幕,支持中文,英文,日文等等
  20. Hive处理数据基本操作流程

热门文章

  1. 关于vue项目打包后提示图片文件路径错误的解决方法
  2. 孙溟㠭先生禅意篆刻——正
  3. JavaScript语言核心
  4. 研究人员重置交通卡数据搭乘免费火车
  5. nunit php-fpm,首页 C#使用NUnit的-如何获得当前正在执行...
  6. 【转】自然语言处理:文本相似度计算(欧氏距离、余弦相似度、编辑距离、杰卡德相似度)
  7. 细数网易云音乐上那些适合学习和工作时听的歌单。
  8. fade计算机音乐,Fade(纯音乐) - QQ音乐-千万正版音乐海量无损曲库新歌热歌天天畅听的高品质音乐平台!...
  9. 保序回归(isotonic_regression)
  10. 做人工智能薪资怎么样?AI从业收入高吗?