首先了解下列相关属性

网页可见区域宽: document.body.clientWidth;
网页可见区域高: document.body.clientHeight;
网页可见区域宽: document.body.offsetWidth (包括边线的宽);
网页可见区域高: document.body.offsetHeight (包括边线的宽);
网页正文全文宽: document.body.scrollWidth;
网页正文全文高: document.body.scrollHeight;
网页被卷去的高: document.body.scrollTop;
网页被卷去的左: document.body.scrollLeft;
网页正文部分上: window.screenTop;
网页正文部分左: window.screenLeft;
屏幕分辨率的高: window.screen.height;
屏幕分辨率的宽: window.screen.width;
屏幕可用工作区高度: window.screen.availHeight;
屏幕可用工作区宽度:window.screen.availWidth;

scrollHeight 获取对象的滚动高度。
scrollLeft 设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop 设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth 获取对象的滚动宽度
offsetHeight 获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetLeft 获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置
offsetTop 获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置
event.clientX 相对文档的水平座标
event.clientY 相对文档的垂直座标

event.offsetX 相对容器的水平坐标
event.offsetY 相对容器的垂直坐标
document.documentElement.scrollTop 垂直方向滚动的值
event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量

要获取当前页面的滚动条纵坐标位置,用:
document.documentElement.scrollTop;
window.pageYOffset IE9支持
而不是:
document.body.scrollTop;

浏览器兼容性问题

  • IE6/7/8:没有doctype声明的html文档使用
    document.body.scrollTop,否则使用document.documentElement.scrollTop。这些版本的浏览器中window.pageYOffset属性是undefined,因此无效。
  • Google Chrome,Firefox,IE9+: document.body.scrollTop 和
    document.documentElement.scrollTop 使用方式同上,但window.pageYOffset
    无论doctype是否声明,浏览器都可以识别。
  • Safari: 浏览器特殊,目前只有window.pageYOffset有效。

处理兼容性代码

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

JS滚动屏幕到顶端的几种方法

  • 与带id的元素绑定使用

  • document.documentElement.scrollTop = 0 / document.body.scrollTop = 0

  • scrollTo(0,0) 一般用于相对于整个页面来说

  • scrollBy(x,y) 一般用于相当于当前元素的滚动 ,可以传入当前元素相对于顶端的值,即document.documentElement.scrollTop

  • scrollIntoView()和要跳转的元素绑定,使元素进入视口

scrollIntoView()

document.getElementById("regRater").scrollIntoView(true);
document.querySelector("#regRater").scrollIntoView(true);
var anchor = this.$el.querySelector("#regRater");
document.body.scrollTop = anchor.offsetTop;

滚动到顶部(瞬间)

window.scrollTo(0, 0)
//或者通过a链接锚点的方式
<a href="#top">返回顶部</a>

滚动到顶部(过度效果)

var timer= setInterval(function () {if (document.documentElement.scrollTop != 0) {document.documentElement.scrollTop -= 100;} else {clearInterval(timer);}
}, 10);

在vue中实现滚动带动画

<div><p @click="backtop">回到顶部<p>
</div><script>export default {mounted() {window.addEventListener("scroll",this.showbtn,true);},methods: {// 显示回到顶部按钮showbtn(){let that = this;let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;that.scrollTop = scrollTop},/*** 回到顶部功能实现过程:* 1. 获取页面当前距离顶部的滚动距离(虽然IE不常用了,但还是需要考虑一下兼容性的)* 2. 计算出每次向上移动的距离,用负的滚动距离除以5,因为滚动的距离是一个正数,想向上移动就是做一个减法* 3. 用当前距离加上计算出的距离,然后赋值给当前距离,就可以达到向上移动的效果* 4. 最后记得在移动到顶部时,清除定时器*/backtop(){var timer = setInterval(function(){let osTop = document.documentElement.scrollTop || document.body.scrollTop;let ispeed = Math.floor(-osTop / 5); document.documentElement.scrollTop = document.body.scrollTop = osTop + ispeed;this.isTop = true;if(osTop === 0){clearInterval(timer);}},30)}}}
</script>

使用 jQuery 实现
能使用原生JS实现的也就能使用jquery实现,只不过我认为为了实现一个小功能,再引入一个框架有点不划算,但如果你是使用jquery写的项目,就可以使用以下的方法实现

<div><p id="backtop">回到顶部</p>
</div><script>function backtop(minHeight){// 获取页面最小高度,如果没有传入值就默认600minHeight ? minHeight = minHeight : minHeight = 600// 为当前页面绑定滚动事件$(window).scroll(function() {// 获取页面滚动高度let osTop = $(window).scrollTop();// 如果滚动高度大于页面视口高度,就渐显图标,否则就渐隐图标if(osTop > minHeight){$("#backtop").fadeIn(500);}else {$("#backtop").fadeOut(500);}})// 定义回到顶部动画$("#backtop").click(function(){$('html,body').animate({scrollTop:'0px'},'slow');)}
</script>

监听DOM进入视口==>

javascript滚动到顶部scrollTop用法相关推荐

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

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

  2. 如何使用JavaScript滚动到页面顶部?

    在滚动页面中如何使用JavaScript滚动到页面顶部?下面本篇文章就来给大家介绍一下使用JavaScript滚动到页面顶部的方法,希望对大家有所帮助. 在JavaScript中可以使用window. ...

  3. js平滑滚动到顶部,底部,指定地方

    为什么80%的码农都做不了架构师?>>>    滚动到顶部: $('.scroll_top').click(function(){$('html,body').animate({sc ...

  4. html文本滚动到底后自动回到顶部,JS 实现DIV 滚动至顶部后固定

    JS 实现DIV 滚动至顶部后固定 DIV滚动至顶部后固定 Test Div function menuFixed(id) { var obj = document.getElementById(id ...

  5. js平滑滚动到顶部,底部,指定地方 animate()

    采用锚点进行页面中的跳转的确很方便,但是要想增加网页的效果,可以使用jquery中的animate,实现滚动的一个动作,慢慢的滚动到你想跳转到的位置,从而看起来会非常高大上.   滚动到顶部: $(' ...

  6. 用Javascript实现回到顶部效果

    用Javascript实现回到顶部效果 经常看到网页中有回到顶部的效果,今天也研究一下回到顶部有哪些方法.众所周知,用锚链接是实现回到最简单的方法,但是从用户体验效果来说,并不是最好的.(锚链接回到顶 ...

  7. javascript滚动文字

    文字向上滚动效果,从网上找到,放到博上,作为笔记,感谢原作者 代码 <style type="text/css" >     li{color: #006699;fon ...

  8. jQuery-点击按钮页面滚动到顶部,底部,指定位置

    $('.scroll_top').click(function(){$('html,body').animate({scrollTop: '0px'}, 800);}); //页面滚动至顶部$('.s ...

  9. iOS 滚动图滚动到顶部汇总

    iOS 滚动图滚动到顶部汇总 前一段时间做一个点击某个部位让滚动图滚动到最顶部的需求,一开始我打算使用setContentOffset,但是由于我的滚动图是一个需要加载网络数据的列表,列表在有多页的时 ...

最新文章

  1. Mac os硬盘空间释放
  2. java并发之SynchronousQueue实现原理
  3. 浅谈ORACLE AWR single instance 一
  4. 性能提升2.58倍!阿里最快KV存储引擎揭秘
  5. vue 图片资源应该如何存放并引入(public、assets)?
  6. SRA 练习:解释 CRUD 矩阵方法,并从上面 “用于化学品跟踪管理系统的 CRUDL 矩阵示例”图中找出被遗漏的需求,并解释是如何找的?
  7. window7安装sqlserver2000企业版
  8. 通过拦截器获取控制类requestMapping注解中的属性值
  9. 解决ant编译中出现“includeantruntime was not set”警告的问题
  10. 金蝶KIS 11.0专业版账套升级至WISE 13.1版本实施步骤
  11. 梦殇 chapter two
  12. 天天向上的力量python代码解释_python天天向上的力量
  13. 文件上传绕过安全狗WAF实战
  14. 图片底部留白怎么处理
  15. 【自建exe】使用Electronjs为自己写windows软件
  16. 计算机上的ip地址在哪查,电脑的ip地址在哪里查
  17. Ubuntu拔掉挂载硬盘后一直卡在ubuntu的logo处以及windows强制关机会出现ubuntu出现系统恢复模式
  18. 快70倍!新一代JS构建工具:ESBuild SWC浅析
  19. 步进电机控制,RPM与PPS单位关系分析
  20. 来上海的第五天,阿里巴巴前端实习生电话面试整理

热门文章

  1. linux防火墙查看方法有,linux防火墙状态查看的方法实例
  2. 中国高校人工智能专业综合排名:四大维度揭示72所高校AI专业综合实力
  3. 用c语言编程点亮7个二极管,树莓派4B C语言编程实现GPIO点亮LED发光二极管(LED灯)...
  4. 2006危险进程集粹
  5. sonar是一款静态代码质量分析工具
  6. F5 LC多链路负载,重庆移动DNS不能正常解析故障处理
  7. 安卓rom开发教程!跟Android初学者分享几点经验,写给正在求职的安卓开发
  8. 单例模式的懒汉式和饿汉式的线程安全问题
  9. 各式结构化数据 动态-接入-存储-查询 的处理办法 (第一部分)
  10. oracle 循环 while,Oracle中的for和while循环