基于JavaScript实现回到页面顶部动画代码

实现回到页面顶部动画的代码需要使用JavaScript,下面是一份完整攻略:

1. HTML 结构

在页面中添加一个回到顶部的按钮,可以使用一个元素(如 div 或 a 标签)作为按钮,添加样式,如下所示:

<div id="back-to-top">↑ 返回顶部</div>

2. CSS 样式

需要为按钮设置样式,包括按钮的位置、颜色、大小、边框等属性,如下所示:

#back-to-top {
  position: fixed;
  bottom: 10px;
  right: 10px;
  background-color: #333;
  color: #fff;
  font-size: 16px;
  padding: 10px 15px;
  border-radius: 4px;
  cursor: pointer;
}

3. JavaScript代码

添加 JavaScript 代码,实现点击按钮后页面平滑返回到顶部的效果。这里使用了 requestAnimationFrame,在动画过程中可以更加平滑地滚动页面。

var backToTopEle = document.querySelector('#back-to-top');
var isShow = false;

window.addEventListener('scroll', function() {
  var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
  if (scrollTop > 100) {
    if (!isShow) {
      isShow = true;
      backToTopEle.classList.add('show');
    }
  } else {
    if (isShow) {
      isShow = false;
      backToTopEle.classList.remove('show');
    }
  }
});

function backToTop() {
  var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
  if (scrollTop > 0) {
    window.requestAnimationFrame(backToTop);
    window.scrollTo(0, scrollTop - scrollTop / 8);
  }
}

backToTopEle.addEventListener('click', backToTop);

4. 示例说明

示例一

假设我们的页面有一个很长的列表,在页面底部添加一个回到顶部的按钮,代码实现如下:

<div id="back-to-top">↑ 返回顶部</div>
<!-- 省略列表代码 -->
#back-to-top {
  position: fixed;
  bottom: 10px;
  right: 10px;
  background-color: #333;
  color: #fff;
  font-size: 16px;
  padding: 10px 15px;
  border-radius: 4px;
  cursor: pointer;
  display: none;
}

#back-to-top.show {
  display: block;
}
var backToTopEle = document.querySelector('#back-to-top');
var isShow = false;

window.addEventListener('scroll', function() {
  var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
  if (scrollTop > 100) {
    if (!isShow) {
      isShow = true;
      backToTopEle.classList.add('show');
    }
  } else {
    if (isShow) {
      isShow = false;
      backToTopEle.classList.remove('show');
    }
  }
});

function backToTop() {
  var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
  if (scrollTop > 0) {
    window.requestAnimationFrame(backToTop);
    window.scrollTo(0, scrollTop - scrollTop / 8);
  }
}

backToTopEle.addEventListener('click', backToTop);

示例二

如果我们的页面有多个回到顶部的按钮,我们可以使用类名来区分它们,代码实现如下:

<div class="back-to-top">↑ 返回顶部</div>
<!-- 省略其他代码 -->

<div class="back-to-top">↑ 返回顶部</div>
<!-- 省略其他代码 -->
.back-to-top {
  position: fixed;
  bottom: 10px;
  right: 10px;
  background-color: #333;
  color: #fff;
  font-size: 16px;
  padding: 10px 15px;
  border-radius: 4px;
  cursor: pointer;
  display: none;
}

.back-to-top.show {
  display: block;
}
var backToTopEles = document.querySelectorAll('.back-to-top');

function onScroll() {
  backToTopEles.forEach(function (backToTopEle) {
    var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
    if (scrollTop > 100) {
      if (!backToTopEle.classList.contains('show')) {
        backToTopEle.classList.add('show');
      }
    } else {
      if (backToTopEle.classList.contains('show')) {
        backToTopEle.classList.remove('show');
      }
    }
  });
}

window.addEventListener('scroll', onScroll);

function backToTop() {
  var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
  if (scrollTop > 0) {
    window.requestAnimationFrame(backToTop);
    window.scrollTo(0, scrollTop - scrollTop / 8);
  }
}

backToTopEles.forEach(function (backToTopEle) {
  backToTopEle.addEventListener('click', backToTop);
});

通过以上步骤,我们就可以实现一个基于 JavaScript 的回到页面顶部动画了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于JavaScript实现回到页面顶部动画代码 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 解决window.open()被浏览器拦截的问题

    当我们在网站中使用 window.open() 方法进行新窗口打开时,有时候会出现被浏览器拦截的情况,这是因为浏览器自身的安全机制会对一些具有潜在风险的弹窗进行拦截。 要解决这个问题,我们可以按照以下攻略进行操作: 第一种解决方法:禁用浏览器的弹窗拦截器 这种方法比较简单,只需要禁用浏览器的弹窗拦截器即可。以下给出了几种浏览器的设置方法: 1.1 Googl…

    JavaScript 2023年6月11日
    00
  • jQuery getJSON()+.ashx 实现分页(改进版)

    下面就为您详细讲解“jQuery getJSON()+.ashx实现分页(改进版)”的攻略。 一、准备工作 1.创建基础网页 首先,您需要创建一个基础网页,html部分如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U…

    JavaScript 2023年5月27日
    00
  • javascript动态添加、修改、删除对象的属性与方法详解

    JavaScript动态添加、修改、删除对象的属性与方法详解 在JavaScript中,我们可以随时通过操作对象的属性和方法来动态地改变对象的行为。这篇文章将详细讲解如何添加、修改和删除对象的属性与方法。 1. 添加属性 我们可以通过两种方式为对象添加属性:点表示法和方括号表示法。 1.1 点表示法 点表示法是最常见的一种添加属性的方式,它将属性名作为对象的…

    JavaScript 2023年5月27日
    00
  • 原生JS 购物车及购物页面的cookie使用方法

    下面是 “原生JS 购物车及购物页面的cookie使用方法”的完整攻略。 什么是 cookie cookie 是存储在客户端(例如浏览器)中的小数据块,包含有关用户行为和偏好的信息,以及与网站相关的其他信息。网站有时需要使用 cookie 跟踪和存储有关用户的信息。 cookie 如何在购物车和购物页面使用 在购物车和购物页面中使用 cookie 有两种方法…

    JavaScript 2023年6月11日
    00
  • JS字符串统计操作示例【遍历,截取,输出,计算】

    为了更好地讲解 “JS字符串统计操作示例【遍历,截取,输出,计算】”,我们首先需要了解什么是字符串以及JavaScript中的字符串操作函数。 1. 什么是字符串? 字符串就是一系列字符的集合,例如”Hello World!”就是一个字符串。在JavaScript中,字符串可以用单引号、双引号或被反斜杠包括起来。 例如: var str = ‘Hello W…

    JavaScript 2023年5月28日
    00
  • 详解JS数组方法

    详解JavaScript数组方法 概述 JavaScript中数组(Array)是一种非常常用的数据结构,它们通常用于存储一系列的值。在JavaScript中,数组具有以下特点: 数组是一种有序的集合,每个元素都有一个索引。 数组的长度是可变的,可以随时添加或删除元素。 数组可以存储不同类型的值,例如数字、字符串、对象等。 JavaScript数组中常用的方…

    JavaScript 2023年5月18日
    00
  • 35个JS中实用工具函数的代码分享

    标题:35个JS中实用工具函数的代码分享 介绍 本文将分享35个JS中实用工具函数的代码。这些函数可以被应用于日常开发中,提高开发和编码效率。在下面的内容中,每个函数均附带代码示例,帮助读者更好地理解和应用它们。 代码分享 函数 1:isArray 判断变量是否为数组。 function isArray (arr) { return Object.proto…

    JavaScript 2023年5月27日
    00
  • javascript中日期转换成时间戳的小例子

    JavaScript的日期对象提供了各种操作日期和时间的方法。在JavaScript中将日期转换成时间戳(以毫秒为单位)非常简单,只需要用Date对象的getTime()方法即可。以下是用JavaScript将日期转换为时间戳的小例子: const date = new Date(‘2021-08-01’); const timeStamp = date.g…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部