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

yizhihongxing

实现回到页面顶部动画的代码需要使用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日

相关文章

  • Javascript Array toString 方法

    以下是关于JavaScript Array toString方法的完整攻略。 JavaScript Array toString方法 JavaScript Array toString方法用于将数组转换为字符串。该方法会将数组中的每个元素转换为字符串,并使用逗号分隔符将它们连接起来。 下面是一个使用toString方法的示例: var arr = [1, 2…

    JavaScript 2023年5月11日
    00
  • javascript asp教程第十一课–Application 对象

    JavaScript ASP 教程第十一课 — Application 对象 什么是 Application 对象 ASP 的 Application 对象是服务器端的全局对象,用于存储应用程序全局数据并使多个用户共享这些数据。Application 可以在 ASP 应用程序的任何页面中访问,因此非常有用。 如何使用 Application 对象 设置 A…

    JavaScript 2023年5月27日
    00
  • jquery处理json对象

    一、简介 在前端开发中,处理 JSON 数据是一项基本技能,而 jQuery 正是我们最常使用的 JS 库之一。本文将详细介绍 jQuery 如何处理 JSON 数据对象。 二、jQuery 处理 JSON 将 JSON 字符串转换为 JavaScript 对象 使用 JSON.parse() 方法,可以将 JSON 字符串转换为 JavaScript 对象…

    JavaScript 2023年5月27日
    00
  • UpdatePanel触发javascript脚本的方法附代码

    关于”UpdatePanel触发javascript脚本的方法”,我来详细讲解一下。 首先,我们需要了解一下UpdatePanel是什么。UpdatePanel在ASP.NET中是一个用来局部刷新页面的控件。当UpdatePanel中的内容需要更新时,ASP.NET会自动发送异步请求并更新指定部分的内容。而JavaScript脚本则是一种脚本语言,可以用来为…

    JavaScript 2023年6月10日
    00
  • javascript 面向对象编程基础:封装

    面向对象编程 (Object-Oriented Programming,OOP) 是一种编程范式,它将数据和操作数据的方法封装起来,以对象的形式呈现出来,以此来实现代码重用。其中,封装就是OOP中的三大特性之一。 封装(Encapsulation),顾名思义就是封住某些操作,不让外界直接访问内部的数据,只允许一些公共的接口对数据进行访问和操作,从而达到保护数…

    JavaScript 2023年5月27日
    00
  • Cookies 和 Session的详解及区别

    我来详细讲解一下“Cookies 和 Session的详解及区别”。 Cookies 和 Session的概述 Cookies:保存在客户端,并且数据较为小巧,可以通过浏览器修改; Session:保存在服务端,因此不太容易被攻击,并且能够存储较为敏感的用户信息。 Cookies和Session的使用 Cookies的使用 Cookies的使用主要有以下几个…

    JavaScript 2023年6月11日
    00
  • JS中强制类型转换的实现

    JS中强制类型转换的实现是通过一组内置函数来完成的,这些函数会将一个数据类型转换为另一种数据类型。通常情况下,JS会自动进行隐式类型转换,但是有些情况下我们需要手动进行强制类型转换。 强制类型转换的相关函数如下: parseInt():将字符串转换为整数。 parseFloat():将字符串转换为浮点数。 String():将其他类型的值转换为字符串。 Bo…

    JavaScript 2023年5月28日
    00
  • Javascript实现商品秒杀倒计时(时间与服务器时间同步)

    下面我将为您提供“Javascript实现商品秒杀倒计时(时间与服务器时间同步)”的完整攻略。 一、需求分析 商品秒杀倒计时的实现,需要做到倒计时精准,时间与服务器时间同步,同时要求倒计时显示页面美观、易于用户理解操作。 二、解决方案 1.获取当前服务器时间,对服务器时间进行格式化处理,然后通过Ajax把获取到的时间发送给前端,以便前端进行倒计时的对比计算。…

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