基于JS实现回到页面顶部的五种写法(从实现到增强)

yizhihongxing

以下是详细讲解“基于JS实现回到页面顶部的五种写法(从实现到增强)”的完整攻略。

一、引言

在网页的开发过程中,经常会遇到需要让网页回到页面顶部的需求,比如用户滑动较长页面后,需要快速回到顶部,提高用户体验。本文将介绍基于JS实现回到页面顶部的五种写法,包括从最基本的实现到功能增强的高级写法。

二、基本实现

最基本的实现方式就是通过JS设置scrollTop属性来实现页面滚动,具体的代码如下:

function backToTop() {
    window.scrollTo(0, 0);
}

当然,这种方式的缺点也很明显,页面的滚动效果很生硬,不能让用户更好的感受到回到页面顶部的过程。

三、实现平滑滚动

为了让用户更好的感受到回到页面顶部的过程,需要实现平滑滚动的效果,具体的做法是通过设置定时器来逐渐逼近页面顶部,实现缓慢滚动的效果,具体代码如下:

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

这种方式的效果已经比基本实现要好很多了,但还有提升的余地。

四、实现带缓动的平滑滚动

为了让页面的滚动更加自然,可以实现带缓动的平滑滚动。这里的缓动效果是通过使用贝塞尔曲线实现的,具体代码如下:

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

五、增加按钮控制和动画

以上的实现方式,都是跟页面元素无关的,用户需要手动调用JS才能回到页面顶部。为了更加方便用户,我们可以增加一个回到页面顶部的按钮,用户可以点击按钮来调用回到页面顶部的JS函数。同时,可以增加一些动画效果,使得回到页面顶部的过程更加美观。具体代码如下:

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

<style>
    #back-to-top {
        position: fixed;
        bottom: 20px;
        right: 20px;
        display: none;
        cursor: pointer;
        z-index: 999;
        opacity: .6;
        transition: opacity .3s;
    }

    #back-to-top:hover {
        opacity: 1;
    }
</style>

<script>
    var backToTopEle = document.querySelector('#back-to-top');
    var body = document.body;
    var docElem = document.documentElement;
    var offset = 100;
    var scrollPos;
    var scrollTimer = null;

    window.addEventListener('scroll', function() {
        scrollPos = window.pageYOffset || docElem.scrollTop || body.scrollTop;
        if (scrollPos > offset) {
            backToTopEle.style.display = 'block';
        } else {
            backToTopEle.style.display = 'none';
        }
    });

    backToTopEle.addEventListener('click', function() {
        scrollTimer = setInterval(function() {
            scrollPos = window.pageYOffset || docElem.scrollTop || body.scrollTop;
            if (scrollPos > 0) {
                window.scrollTo(0, scrollPos - scrollPos / 8);
            } else {
                clearInterval(scrollTimer);
            }
        }, 30);
    });
</script>

六、结语

到此为止,我们讲解了基于JS实现回到页面顶部的五种写法,从最基本的实现到高级增强,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于JS实现回到页面顶部的五种写法(从实现到增强) - Python技术站

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

相关文章

  • firefox和IE系列的相关区别整理 以备后用

    Firefox和IE系列的相关区别整理 1.浏览器内核 Firefox采用Gecko内核,这是Mozilla基金会开发的一个网页排版引擎,它实现了最新的Web标准,同时支持HTML5和CSS3等新技术。 IE系列的内核则不断更新,IE6采用的是Trident内核,IE7和IE8采用Trident 2.0(也称为MSHTML),IE9~IE11采用Triden…

    css 2023年6月9日
    00
  • HTML5的新特性(1)

    HTML5是最新版本的HTML标准,具有很多新特性,其中一些特性至今仍为Web开发者所熟知和广泛使用,下面我们一起来详细讲解HTML5的新特性。 新的语义标签 HTML5引入了一些新的语义标签,用于提高页面的语义化,增加页面结构的可读性和可维护性。以下是几个常用的新标签: <header>:表示页面或区域的标题。 <nav>:用于描述…

    css 2023年6月10日
    00
  • 关于CSS Padding那些你意想不到的用法示例

    来讲一下“关于CSS Padding那些你意想不到的用法示例”的完整攻略。 简介 CSS 中的 padding 属性表示元素内边距,指的是元素的内容与边框之间的空间。在平常使用中,我们常常将 padding 用于为元素增加内边距,从而让元素的内容与边框之间产生一定的距离。但是,padding 更加具有变通性。在实际应用中,也有很多意想不到的 padding …

    css 2023年6月9日
    00
  • jQuery页面滚动浮动层智能定位实例代码

    先简单介绍一下jQuery页面滚动浮动层智能定位实例代码的作用。这段代码可以实现网页中的浮动层,在页面滚动时自动智能定位,不会随着页面滚动而跑偏。接下来,我们将详细讲解如何实现这个功能,示例代码也会在过程中展示。 第一步:HTML结构 首先,需要在HTML结构中设置一个浮动层的容器,例如: <div class="float-layer&qu…

    css 2023年6月10日
    00
  • Lesson03_01 什么是CSS和CSS的设置方式

    Lesson03_01 什么是CSS和CSS的设置方式 什么是CSS CSS(Cascading Style Sheets) 是一种样式表语言,用于描述网页上的文本、样式、布局等设计元素的外观、样式和排版。利用CSS,作者可以控制一个HTML文件的样式和外观,而无需修改HTML元素。 CSS主要作用是美化网页,为网页添加更多的样式,例如字体、字号、颜色、背景…

    css 2023年6月9日
    00
  • 学习DIV+CSS网页布局之一列布局

    学习DIV+CSS网页布局之一列布局是Web前端开发的基础之一,本文将详细介绍如何进行一列布局,帮助读者掌握该技能。 什么是一列布局 一列布局是指网页中只有一个主要内容区域,其他的元素都围绕着这个内容区域来布局的页面布局方式。一列式布局非常适合一些简单的网站,如个人博客,公司官网等。 如何实现一列布局 HTML结构 实现一列布局的第一步是确定HTML结构,我…

    css 2023年6月10日
    00
  • jQuery DIV弹出效果实现代码

    当需要在页面中展示一些提示信息、弹出层等时,我们可以通过jQuery的DIV弹出效果来实现。下面是实现该效果的完整攻略: 1. 准备工作 在进行代码编写前,我们需要先引入jQuery库和样式文件,同时也要写好弹出层的HTML代码。 <!DOCTYPE html> <html> <head> <meta charset…

    css 2023年6月10日
    00
  • Query常用DIV操作获取和设置长度宽度的实现方法

    获取和设置元素的长度和宽度,是前端开发中经常需要涉及的操作。在 Query 中,可以通过 DIV 操作来实现。以下是该操作的具体攻略及两个示例说明: 1. 获取元素的长度和宽度 获取元素的长度和宽度,可以使用 width() 和 height() 方法。 width() 方法用于返回元素的宽度,包括 padding 和 border 的宽度,但不包括 mar…

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