基于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日

相关文章

  • JavaScript函数、闭包、原型、面向对象学习笔记

    JavaScript函数学习笔记 什么是函数 函数是 JavaScript 中的一个代码块,它可以重复执行,并且可通过传入参数和返回值来实现对信息的处理和存储。 函数的定义方式 JavaScript 中有多种定义函数的方式,以下是其中常用的三种方式: 1. 函数声明 使用 function 关键字定义的函数,代码如下: function functionNa…

    JavaScript 2023年5月27日
    00
  • Vue-Router进阶之滚动行为详解

    Vue-Router进阶之滚动行为详解 什么是滚动行为?为什么需要滚动行为? 在Vue-Router中,我们可以使用路由跳转来实现前后端页面之间的跳转,但是当我们来回切换不同的路由时会发现一个问题:每次切换完页面,新页面都会从顶部开始显示,这给用户带来了不好的体验。 这个问题可以通过设置滚动行为来解决。滚动行为可以定义在路由配置中,配合自定义行为函数,实现路…

    JavaScript 2023年6月11日
    00
  • JS中使用apply方法通过不同数量的参数调用函数的方法

    JS中的apply方法用于调用函数,并使用指定的参数数组。它是一个方法,可以在任何函数上使用。apply方法的第一个参数是由函数运行的上下文;this指针指向该对象。apply方法的第二个参数是一个数组,代表传递给调用函数的参数。apply方法不能在调用”use strict”的函数上使用,因为在严格模式下,调用一个null或undefined值的函数的th…

    JavaScript 2023年6月10日
    00
  • JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法

    JS中的hasOwnProperty()方法是用来检测一个属性是否是某个对象的自有属性的方法。它是基于原型链的继承机制的,只有当所查询的属性是对象本身的属性时才会返回true。 语法: object.hasOwnProperty(prop) 其中object是必需的,表示要检查属性的对象,prop参数也是必需的,表示要检查的属性名称,传入的参数是字符串类型。…

    JavaScript 2023年6月10日
    00
  • JS实现动画中的布局转换

    JS实现动画中的布局转换可以通过以下步骤完成: 选择需要转换布局的元素:使用JavaScript的DOM操作选择需要进行布局转换的元素,可以通过ID、class或标签名来选择。 设计转换效果:通过CSS或JavaScript来设置需要进行的布局转换效果,例如平移、缩放、旋转等。 绑定事件:通过JavaScript来绑定需要触发布局转换效果的事件,例如鼠标移入…

    JavaScript 2023年6月10日
    00
  • JavaScript处理XML DOM、XPath和XSLT方法详解

    JavaScript处理XML DOM、XPath和XSLT方法详解 什么是XML DOM? XML DOM(XML Document Object Model)是将XML文档表示成树形结构的方式,让开发者可以使用JavaScript来访问和操作XML文档中的节点和元素。在XML DOM中,每个节点都是一个对象,开发者可以通过对象的属性和方法来读取或修改节点…

    JavaScript 2023年6月10日
    00
  • JavaScript 基础问答一

    JavaScript 基础问答一 中包含了一些关于JavaScript基础知识的问题,下面我将从以下几个方面对其进行详细讲解。 基本数据类型和引用数据类型 JavaScript中的数据类型可以分为基本数据类型和引用数据类型。基本数据类型包括:String、Number、Boolean、null、undefined,引用数据类型包括:Object、Array、…

    JavaScript 2023年5月19日
    00
  • JS控件bootstrap suggest plugin使用方法详解

    JS控件bootstrap suggest plugin使用方法详解 简介 Bootstrap Suggest Plugin是一个基于Bootstrap框架开发的下拉菜单插件,它通过jQuery来实现自动补全和建议功能,可以非常方便地为文本框、选择器添加下拉菜单。 安装 首先,你需要引入 Bootstrap Suggest插件的js文件,并且在页面中放置文本…

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