117.info
人生若只如初见

JS实现回到页面顶部的五种写法(从实现到增强)

  1. 使用window.scrollTo或document.documentElement.scrollTop方法实现:
function scrollToTop() {
  window.scrollTo(0, 0);
}
  1. 使用window.scrollTo方法结合requestAnimationFrame实现平滑滚动效果:
function smoothScrollToTop() {
  const currentScroll = document.documentElement.scrollTop || document.body.scrollTop;
  if (currentScroll > 0) {
    window.requestAnimationFrame(smoothScrollToTop);
    window.scrollTo(0, currentScroll - (currentScroll / 8));
  }
}
  1. 使用scrollIntoView方法实现滚动到指定元素的顶部:
function scrollToElementTop(element) {
  element.scrollIntoView({ behavior: 'smooth', block: 'start' });
}
  1. 使用animate方法实现平滑滚动效果:
function animateScrollToTop(duration) {
  const start = document.documentElement.scrollTop || document.body.scrollTop;
  const target = 0;
  const distance = target - start;
  const startTime = performance.now();
  
  function step() {
    const currentTime = performance.now();
    const elapsed = currentTime - startTime;
    const progress = Math.min(elapsed / duration, 1);
    const easing = function(t) { return t * (2 - t); }; // 缓动函数,例如使用二次方函数
    const position = start + distance * easing(progress);
    
    window.scrollTo(0, position);
    
    if (progress < 1) {
      window.requestAnimationFrame(step);
    }
  }
  
  window.requestAnimationFrame(step);
}
  1. 增强版本:添加按钮元素,并绑定点击事件:

document.getElementById('scrollToTopBtn').addEventListener('click', scrollToTop);

function scrollToTop() {
  window.scrollTo({ top: 0, behavior: 'smooth' });
}

以上是五种常见的回到页面顶部的实现方法,从最基本的滚动到顶部到增强版带有平滑滚动效果和按钮点击事件的写法。可以根据具体需求选择相应的方法来实现回到页面顶部的功能。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe2a5AzsLAAJSBlU.html

推荐文章

  • js中location.reload的作用是什么

    在JavaScript中,location.reload()用于重新加载当前页面。它会重新发送HTTP请求,从服务器重新获取页面的内容,并将当前页面重新加载到浏览器中。
    locatio...

  • JS页面跳转代码怎么写?总结了5种方法

    使用 JavaScript 的 window.location.href 方法实现页面跳转: window.location.href = "https://example.com"; 使用 JavaScript 的 window.location.replace 方...

  • JS实现简单的相册功能

    以下是一个简单的相册功能的实现示例: 相册 .gallery { display: flex; flex-wrap: wrap; } .gallery img { width: 150px; height: 150px; object-fit: cover; ...

  • js获取文件上传路径(解决出现fakepath的问题)

    在Javascript中,由于安全性的问题,无法直接获取文件的完整路径。浏览器为了保护用户隐私,将文件路径设置为虚假路径(fake path),即使你通过input标签选择了一...

  • openCv copyTo()的形式详解

    在OpenCV中,copyTo()函数用于将源图像复制到目标图像中。它有多种不同的形式可以使用,下面是对这些形式的详细解释。 copyTo(Mat &dst) const:
    这是copyT...

  • Automation服务器不能创建对象的多种解决办法

    有多种解决办法可以解决Automation服务器无法创建对象的问题,具体取决于问题的原因。以下是几种常见的解决办法: 检查COM组件是否正确注册:首先确保所需的COM组...

  • T-SQL简介及基本语法

    T-SQL(Transact-SQL)是用于访问和操作SQL Server数据库的编程语言。它是SQL的扩展,提供了更多的功能和语法,使得开发人员可以更加灵活地进行数据库操作。

  • Android基础知识之TableLayout(表格布局)详解

    TableLayout是Android中一种用于创建表格布局的布局容器,可以用于在界面中创建包含行和列的表格结构。TableLayout的特点是每一行可以包含多个列,每个列的宽度可...