JS实现回到页面顶部动画效果的简单实例

2023-12-08前端开发
22

下面我将为你详细讲解“JS实现回到页面顶部动画效果的简单实例”的完整攻略。

步骤1:HTML结构

首先,在页面中需要添加一个回到顶部的按钮。在 HTML 中添加一个 button 元素,并为其添加一个 id 属性,以方便在 JS 中使用。

<button id="backToTopBtn">回到顶部</button>

步骤2:CSS样式

接下来,为回到顶部的按钮添加样式,让它看起来更加美观。以下是一个简单的样式示例:

#backToTopBtn {
    position: fixed;
    bottom: 20px;
    right: 20px;
    display: none;
    width: 50px;
    height: 50px;
    text-align: center;
    font-size: 20px;
    font-weight: bold;
    color: #fff;
    border-radius: 50%;
    background-color: #333;
    cursor: pointer;
}

步骤3:JS实现

3.1:监听滚动事件

使用 window.addEventListener 监听窗口滚动事件,以便在滚动时显示/隐藏“回到顶部”按钮。

window.addEventListener('scroll', function() {
    if (window.pageYOffset > 100) {
        document.getElementById("backToTopBtn").style.display = "block";
    } else {
        document.getElementById("backToTopBtn").style.display = "none";
    }
});

3.2:滚动到页面顶部动画效果

当点击“回到顶部”按钮时,使用 window.requestAnimationFrame 以动画的方式将页面滚动到顶部。

document.getElementById("backToTopBtn").addEventListener('click', function() {
    var currentScroll = document.documentElement.scrollTop || document.body.scrollTop;
    if (currentScroll > 0) {
        window.requestAnimationFrame(scrollToTop);
    }
});

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

以上是一个简单的实例,你可以根据需要对其进行修改或优化。

示例说明1

假设你在网站中添加了一个分页功能,用户需要频繁地进行翻页。为了提升用户体验,你决定添加一个回到顶部的按钮,让用户能够更轻松地返回页面顶部。你可以使用上面的代码示例,将其添加到网站中。

示例说明2

假设你的网站是一个博客网站,最近你新增了一篇非常长的文章,用户需要滚动页面才能浏览完整篇文章。为了提升用户体验,你决定添加一个回到顶部的按钮,让用户能够更轻松地返回页面顶部。你可以使用上面的代码示例,将其添加到网站中。

The End

相关推荐

layui实现图片上传成功后回显点击放大图片功能
layui实现图片上传成功后回显点击放大图片功能,html代码部分: !-- html代码--div class="layui-form-item" label class="layui-form-label"上传图片/label div class="layui-input-block" button type="button" class="layui-btn" id="license-auth-letter-...
2025-09-06 前端开发
202

Layui实现数据表格中鼠标悬停图片放大离开时恢复原图
Layui实现数据表格中鼠标悬停图片放大离开时恢复原图的效果,最终效果如下图所示: 实现代码如下,在done函数中调用hoverOpenImg方法 var tableIns = window.demoTable = table .render({ elem : '#idTest', id : 'idTest', url : '/postData', //width : 150...
2025-09-04 前端开发
112

layui点击文本输入框调起弹出选择框并选择内容的两种方法参考
我们在用到layui时候,需要点击文本输入框调起弹出选择框并选择内容,这个要怎么操作呢?以下两种方法可以参考: 1、点击名称,弹出信息弹框,选择表格中的某一行,实现效果如下: html页面代码 !--计量器具弹出层-- div id="equipment" lay-filter="equipmen...
2025-09-02 前端开发
167

网站部署https后百度地图不显示问题
https的网站如果引用百度地图,会出现加载不了的问题,这是因为涉及到跨域问题,网站是https的,但是引用百度地图的是http的,这个要怎么操作呢? 比如我引用的地址:http://api.map.baidu.com/api?v=2.0ak=AK显示 后来看了一下,少了一个s=1字段,加一下s=1...
2025-07-28 前端开发
139

微信小程序实现点击复制功能和手机拨打电话功能
做小程序项目的时候,客户提了一个功能需求优化,就是长按文字需要复制全部内容,因为有的手机支持全选复制,有的手机不支持全选复制。 通过设置系统剪贴板的内容和获取系统剪贴板的内容实现复制功能 html相关代码: van-field value="{{form.contactPhone}}"...
2025-07-02 前端开发
78

js拖拽排序插件Sortable.js如何使用
由于项目功能需要,要实现对table中的行实现拖拽排序功能,找来找去发现Sortable.js能很好的满足这个需求,而且它还是开源的,于是乎就开始学习使用Sortable.js 特点 轻量级但功能强大 移动列表项时有动画 支持触屏设备和大多数浏览器(IE9及以下除外) 支持...
2025-06-12 前端开发
161