js+css实现回到顶部按钮(back to top)

实现回到顶部按钮(back to top)的方法有很多种,其中一种使用js+css来实现。以下是实现该功能的详细步骤:

第一步:创建HTML结构

首先我们需要在HTML中创建一个按钮元素,并给它一个ID,例如:

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

第二步:添加CSS样式

接下来,我们需要为按钮添加一些基本的CSS样式来控制它的位置、大小、样式等。例如:

#back-to-top {
  position: fixed;   /* 固定在页面右下角位置 */
  bottom: 20px;
  right: 20px;
  display: none;     /* 初始不显示 */
  cursor: pointer;   /* 鼠标悬停时显示手型 */
}

第三步:编写JavaScript

在JavaScript中,我们需要为按钮添加一个点击事件,当点击按钮时,页面会自动滚动回到顶部。我们可以使用以下代码实现:

var topBtn = document.getElementById('back-to-top');
window.onscroll = function() {  // 监听窗口滚动事件
  if (document.documentElement.scrollTop > 200) {  // 当滚动距离超过200px时显示按钮
    topBtn.style.display = 'block';
  } else {
    topBtn.style.display = 'none';  // 否则隐藏按钮
  }
}
topBtn.onclick = function() {  // 点击按钮时回到顶部
  document.documentElement.scrollTop = 0;
}

代码解析:

  • 首先,我们使用document.getElementById方法获取到按钮元素,并将其赋值给topBtn变量。

  • 然后,我们监听窗口的滚动事件,当滚动距离超过200px时,显示按钮;否则,隐藏按钮。

  • 最后,当按钮被点击时,使用document.documentElement.scrollTop方法将窗口滚动到页面的顶部。

示例1

以下是一个完整的示例,包括HTML、CSS和JavaScript代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Back to top</title>
  <style>
    #back-to-top {
      position: fixed;   /* 固定在页面右下角位置 */
      bottom: 20px;
      right: 20px;
      display: none;     /* 初始不显示 */
      cursor: pointer;   /* 鼠标悬停时显示手型 */
    }
  </style>
</head>
<body>
  <div style="height: 1000px;"></div>  <!-- 确保页面有滚动条 -->
  <button id="back-to-top">返回顶部</button>
  <script>
    var topBtn = document.getElementById('back-to-top');
    window.onscroll = function() {  // 监听窗口滚动事件
      if (document.documentElement.scrollTop > 200) {  // 当滚动距离超过200px时显示按钮
        topBtn.style.display = 'block';
      } else {
        topBtn.style.display = 'none';  // 否则隐藏按钮
      }
    }
    topBtn.onclick = function() {  // 点击按钮时回到顶部
      document.documentElement.scrollTop = 0;
    }
  </script>
</body>
</html>

运行该页面后,当页面被滚动超过200px时,将在页面右下角显示一个返回顶部按钮。

示例2

我们还可以使用jQuery来实现相同的效果。以下是使用jQuery的示例:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Back to top</title>
  <style>
    #back-to-top {
      position: fixed;   /* 固定在页面右下角位置 */
      bottom: 20px;
      right: 20px;
      display: none;     /* 初始不显示 */
      cursor: pointer;   /* 鼠标悬停时显示手型 */
    }
  </style>
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script>
    $(document).ready(function() {
      var topBtn = $('#back-to-top');
      $(window).scroll(function() {  // 监听窗口滚动事件
        if ($(window).scrollTop() > 200) {  // 当滚动距离超过200px时显示按钮
          topBtn.show();
        } else {
          topBtn.hide();  // 否则隐藏按钮
        }
      });
      topBtn.click(function() {  // 点击按钮时回到顶部
        $('html, body').animate({scrollTop: 0}, 500);
      });
    });
  </script>
</head>
<body>
  <div style="height: 1000px;"></div>  <!-- 确保页面有滚动条 -->
  <button id="back-to-top">返回顶部</button>
</body>
</html>

与示例1相比,我们引入了jQuery库,并使用$(document).ready(function(){ })方法来确保页面DOM元素加载完成后再执行代码。其他部分与示例1的代码基本一致,只是使用了jQuery的语法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js+css实现回到顶部按钮(back to top) - Python技术站

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

相关文章

  • 浅谈CSS中的 object-fit 与 object-position的使用

    浅谈CSS中的 object-fit 与 object-position 的使用 什么是 object-fit 和 object-position? object-fit 属性用于控制如何调整一个元素所显示的图片或视频的尺寸比例。默认情况下,一个图片或视频会按照原始的尺寸比例在容器中缩放以适应容器的大小,但在某些情况下,我们需要按照特定的方式裁剪、缩放图片或…

    css 2023年6月10日
    00
  • CSS盒子隐藏/显示后再最上层的实现代码

    实现CSS盒子隐藏/显示后再最上层,可以使用position属性和z-index属性。 具体步骤如下: 确定要隐藏/显示的盒子,如下例中的一个div标签: <div class="box"> 这是一个要隐藏/显示的盒子。 </div> 在CSS中设置盒子的position属性为absolute或fixed,这样可以…

    css 2023年6月10日
    00
  • 手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现

    要实现手机端图片缩放、旋转、全屏查看,可以使用PhotoSwipe.js插件。下面是详细的攻略步骤: 1. 引入PhotoSwipe插件 首先,在你的网站中引入PhotoSwipe插件的CSS和JS文件。可以从官方网站上下载最新版本:https://photoswipe.com/ <link rel="stylesheet" hre…

    css 2023年6月10日
    00
  • 详解CSS背景渐变图片transtion过渡效果技巧

    详解CSS背景渐变图片transtion过渡效果技巧 简介 CSS的背景渐变效果是网页设计中非常常见的效果,利用它可以让页面看起来更加美观逼真,增加用户体验。而CSS背景渐变图片transition过渡效果则可以让页面更加生动,实现动态的渐变过程,给用户带来沉浸式的体验。 具体实现方法 手写css代码 background: linear-gradient(…

    css 2023年6月9日
    00
  • 用CSS截断字符串的两种实用方法

    使用CSS截断字符串是前端开发中常见的需求,下面详细讲解两种实用方法的攻略。 方法一:文本溢出省略号 步骤一:使用文本溢出属性 CSS中的文本溢出属性text-overflow可用于控制文本的省略形式。将此属性设置为ellipsis即可使文本以省略号结尾。 步骤二:设置强制换行 如果不将文本强制换行,则文本将会一直展示直到页面边缘,而不是截取多余的部分。因此…

    css 2023年6月10日
    00
  • JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】

    【JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】】是一篇介绍如何通过JavaScript实现表单验证的文章,其中利用到了策略模式,将验证数据与逻辑分离开来,以便简化代码,提高代码的可读性和可维护性。 一、数据与逻辑分离的思想 在传统的表单验证方式中,通常直接将验证逻辑写在表单元素的事件触发函数中,这样的方式非常不灵活,代码量也非常大,而且不具备可维…

    css 2023年6月10日
    00
  • CSS中的content属性使用教程

    CSS中的content属性是用于定义元素的内容。通常用于CSS伪元素中,例如:before和:after等。在使用content属性时,内容必须通过引号括起来。下面是关于“CSS中的content属性使用教程”的完整攻略。 一、基础语法 CSS中content属性的基本语法如下: selector::before { content: "some…

    css 2023年6月10日
    00
  • html5 canvas 实现光线沿不规则路径运动

    实现光线沿不规则路径运动,需要使用HTML5的Canvas元素以及JavaScript的相关技术。以下是具体的实现攻略: 1. 创建HTML页面 首先,在HTML页面中添加一个Canvas元素,用于绘制光线路径。 <!DOCTYPE html> <html> <head> <meta charset="UT…

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