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

这篇具有很好参考价值的文章主要介绍了JavaScript中的scrollTop(js中的scrollTop,滚动到顶部,javascript滚动到顶部)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简述:scrollTop是JavaScript中一个非常有用且重要的方法,它用于获取或设置元素的垂直滚动条位置,实现各种滚动相关的功能,无论是回到顶部、滚动到指定位置还是监听滚动事件,都需要用到scrollTop,在本文中,我们将深入了解scrollTop的用法和实际应用,这是一张scrollTop的关系图,可供参考。

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

一、属性介绍 

  • .scrollTop         容器到顶部的距离;

  • .clientHeight     容器的高度(可视区域);

  • .scrollHeight     容器的像素高度(完整高度,包括滚动条和隐藏的内容);

  • .offsetTop             容器的顶部偏移量(距离父盒子顶部距离);

  • .onscroll               给一个元素添加scroll事件;

  • .scrollTo(0,90)      滚动到指定的坐标;

  • .innerHeight         文档显示区的高度(内部高度,不包括元素的内边距和边框);

当滚动条位于容器底部时,以下条件成立:文章来源地址https://www.toymoban.com/news/detail-474991.html

       公式:scrollHeight  - clientHeight  = scrollTop;

       当然:scrollTop + clientHeight  = scrollHeight;


二、属性获取,获取元素的scrollTop值

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

上述代码首先尝试获取文档根元素,即<html>的scrollTop值,

如果该值为0,则获取<body>元素的scrollTop值,

这样做是因为不同的浏览器可能会使用不同的元素来表示文档的主体部分。


三、属性使用详细,scrollTop值用于各种用途,以下是一些实际应用示例:

1、回到页面顶部

当用户滚动页面时,我们可以在页面底部添加一个“回到顶部”的按钮,点击该按钮后,页面将滚动到顶部,以下是相关代码:

var btn = document.getElementById("back-to-top");
btn.onclick = function() {
  document.documentElement.scrollTop = 0;
  document.body.scrollTop = 0;
}

document.documentElement,返回一个文档的文档元素,

该代码将文档根元素和body元素的scrollTop值均设置为0,从而将页面滚动到顶部。

2、滚动到指定位置

我们可以使用scrollTop值将页面滚动到指定的位置。以下是示例代码:

var targetElement = document.getElementById("target-element"); 

var targetPosition = targetElement.offsetTop; 

document.documentElement.scrollTop = targetPosition; 

document.body.scrollTop = targetPosition;

该代码将文档根元素和<body>元素的scrollTop值均设置为目标元素的垂直偏移量(即距离文档顶部的距离),从而将页面滚动到目标位置。

3、监听页面滚动事件

我们可以使用scrollTop值来监听页面滚动事件,从而实现各种效果。以下是示例代码:

window.onscroll = function () { 
  var scrollTopValue =
 document.documentElement.scrollTop ||
 document.body.scrollTop;             
  console.log(scrollTopValue); 
}

该代码会在页面滚动时打印当前的scrollTop值,从而方便我们进行各种处理。

4、实现滚动动画

通过将scrollTop属性与requestAnimationFrame函数结合使用,我们可以实现平滑的滚动动画效果,例如,以下代码将在500毫秒内将页面滚动到顶部:

function scrollToTop() {
  const currentPosition = document.documentElement.scrollTop;
  if (currentPosition > 0) {
    window.requestAnimationFrame(scrollToTop);
    window.scrollTo(0, currentPosition - currentPosition / 10);
  }
}
scrollToTop();

5、实现无限滚动

使用scrollTop属性,我们可以检测页面滚动到底部的事件,并在滚动到底部时自动加载新内容,从而实现无限滚动。例如,以下代码将在页面滚动到底部时加载更多内容:

window.addEventListener('scroll', function() {
  if (document.documentElement.scrollTop +
      window.innerHeight ==
      document.documentElement.scrollHeight) {
        // Load more content here
        console.log("到底了");
  }
});

补充:

  window.addEventListener('scroll', function () {        });        //OK

  window.onscroll = function () {         };                                //OK

感觉有用,就一键三连,感谢(●'◡'●)

到了这里,关于JavaScript中的scrollTop(js中的scrollTop,滚动到顶部,javascript滚动到顶部)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【零基础学JS - 14 】javaScript中的switch语句

    👨‍💻 作者简介:程序员半夏 , 一名全栈程序员,擅长使用各种编程语言和框架,如JavaScript、React、Node.js、Java、Python、Django、MySQL等.专注于大前端与后端的硬核干货分享,同时是一个随缘更新的UP主. 你可以在各个平台找到我! 🏆 本文收录于专栏: 零基础学JavaScript,包含Jav

    2024年02月07日
    浏览(38)
  • [javascript核心-09] 彻底解决js中的类型检测方案

    typeof 基于数据类型的值(二进制)进行检测 返回结果为字符串 typeof NaN 结果为 number typeof null 结果为 Object .对象存储以 000 开头,而 null 也是如此。 typeof 不能细分对象,结果都是 Object typeof function(){} 结果为 function instanceof 检测某个构造函数是否出现在某实例的原型链上 返回结

    2024年02月16日
    浏览(54)
  • JavaScript获取时间(js中的new Date(),获取前7天时间)

    简述:我们在写Echarts的时候,难免会用到js中的new Date(),用来获取时间, 今天就来分享下它的用法,顺便做下笔记。 关于new Date()的一些js方法: 输出: 1、 获取前一段时间的日期 难点: 这里用到了setDate()方法,该方法用于实现日期的相加减,它接收一个整数,如果这个整

    2024年02月09日
    浏览(79)
  • JavaScript中的时间日期函数new Date()(JS中5种获取时间戳的函数)

    简介: JavaScript 中的 new Date() 方法用于创建一个新的 Date 对象,该对象表示当前日期和时间。Date 对象提供了许多方法和属性,可以用于获取和设置日期和时间信息。 new Date([year, month, day, hour, minute, second, millisecond]) 其中,每个参数都是可选的。如果没有指定参数,则 new Dat

    2024年02月04日
    浏览(73)
  • vue 滚动条滚动到顶部或者底部

    1:在滚动条所属 div 上加上 ref=“mianscroll” (mianscroll名称随意起) 2:点击事件到顶部 3:点击事件到底部 注意点:一定要是给滚动条所属 div 添加如上方法,不然无法生效,滚动的 div 的样式是 overflow:auto

    2024年02月11日
    浏览(40)
  • js获取元素到可视区的距离/浏览器窗口滚动距离/元素距离浏览器顶部距离

    1. js获取元素距离可视区的各种距离 2. js获取浏览器窗口滚动距离 3. js获取元素实际距离页面距离(包括滚动距离) (1).如果父辈元素中有定位的元素,那么就返回距离当前元素最近的定位元素边缘的距离。 (2).如果父辈元素中没有定位元素,那么就返回相对于body边缘距

    2024年02月12日
    浏览(51)
  • 谈一谈浏览器与Node.js中的JavaScript事件循环,宏任务与微任务机制

    JavaScript是一个单线程非阻塞的脚本语言。这代表代码是执行在一个主线程上面的。但是JavaScript中有很多耗时的异步操作,例如AJAX,setTimeout等等;也有很多事件,例如用户触发的点击事件,鼠标事件等等。这些异步操作并不会阻塞我们代码的执行。例如: 可以看到,上述代

    2024年02月12日
    浏览(49)
  • 使用scrollTo/scrollTop让页面元素滚动到指定位置, 并设置滚动动画

    当容器有滚动条时,有时需要点击 试图 或 节点 将页面滚动到指定元素位置 比如父元素设置了 overflow: hidden; ,当元素里的内容超过元素本身的高度时, 就会出现滚动条, 那么鼠标滑动的距离就是其滚动距离. scrollTop属性 scrollTop 就是指 “元素中的内容” 超出 “元素上边界” 的

    2023年04月27日
    浏览(78)
  • 微信小程序 滚动到底部加载新的数据 之后滚动到顶部

    1.配置到底部监听 在app.json的window里面加入 里面的300表示距离底部300rpx触发onReachBottom事件 默认50rpx 2.在数据列表的js页面

    2024年02月12日
    浏览(40)
  • vue页面设置滚动失败的解决方案(scrollTop一直为0)

    背景 希望页面能跳转到 某一位置用到了scrollTop属性。可是发现给某个div设置该属性后,一致为0。找了很多方案,但不都适合自己,或者说不知道是否适合。 怎么看我这个方法适不适合你 你可以尝试打印滚动条的位置,页面滚动后,再次打印滚动条的位置,如果一直为0的话,那我

    2024年02月04日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包