【JavaScript Demo】回到顶部功能实现

随着网站的不断发展,需要展示的内容也越来越丰富,这导致网页上能展示的内容越来越多。当内容堆积影响了用户体验,就需考虑如何提升用户体验。在这一系列的改动中,“回到顶部”的功能成为了一个经典。

1.页面布局

(1) 我们先简单的搭建一个长度为1200px的页面,保证视口的高度足够。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta content="width=device-width,user-scalable=no" name="viewport" />
    <title>Back to top</title>
    <style type="text/css">
        #content { height: 1200px;}
        .text_center { text-align: center;}
    </style>
</head>
<body>
<div id="content">
    <div class="text_center">往下拉哟</div><br />
    <div class="text_center">↓</div><br />
    <div class="text_center">↓</div><br />
    <div class="text_center">↓</div><br />
    <div class="text_center">↓</div><br />
    <div class="text_center">↓</div>
</div>
</body>
</html>

(2) 然后我们准备一张图片作为返回顶部的按钮:

(3) 接着,我们把按钮放到网页上去:

HTML代码:

<body>
  ...
<a id="btnTop" class="btnTop" href="javascript:;" title="Back to top">
    <img src="img/o_to_Top.png" class="imageTop">
</a>
</body>

CSS代码:

.btnTop { position: fixed; right: 2%; bottom: 2%; cursor: pointer; opacity: .7; z-index: 9; }
.btnTop:hover { opacity: 1;}
.imageTop { height: 72px; height: 72px;}

现在的显示效果:

2.添加JS实现效果

原理:通过控制当前视口顶端的数值来实现

效果:返回顶部按钮默认不显示,当向下滑动到一定距离时显示。点击按钮后,当前页面由快到慢地返回页面顶部。

实现:

我们先让返回页面按钮默认不显示:

<a id="btnTop" style="display:none;" ...

然后,我们新建JavaScript文件并引用,具体功能实现代码如下,应该备注的比较详细:

window.onload = function(){
    var btnTop = document.getElementById("btnTop");
    var timer = null;

    window.onscroll = function(){
        var backTop = getScrollTop();
        if(backTop >= 20){ //当前视口顶端大于等于20时,显示返回顶部的按钮
            btnTop.style.display = "block";
        }else {
            btnTop.style.display = "none";
        }
    };

    btnTop.onclick = function(){
        //定时执行
        timer = setInterval(function(){
            var backTop = getScrollTop();
            var speedTop = backTop / 10;
            //修改当前视口的数值,产生向上活动的效果
            setScrollTop(backTop - speedTop);
            if(backTop == 0){
                //结束函数执行
                clearInterval(timer);
            }
        },30);
    };
    //获取当前视口的顶端数值
    var getScrollTop = function(){
        var sTop ;
        if (document.compatMode == "BackCompat")
        {
            sTop = document.body.scrollTop;
        }
        else
        {
            //document.compatMode == \"CSS1Compat\"
            sTop = document.documentElement.scrollTop == 0 ? document.body.scrollTop : document.documentElement.scrollTop;
        }
        return sTop;
    };
    //设置当前视口的顶端数值
    var setScrollTop = function(top){

        if (document.compatMode == "BackCompat")
        {
            document.body.scrollTop = top;
        }
        else
        {
            if(document.documentElement.scrollTop == 0){
                document.body.scrollTop = top;
            }else{
                document.documentElement.scrollTop = top;
            }
        }
    }
};

现在的效果如下:

效果展示:http://yexiaochao.github.io/example/page4top.html

时间: 2024-11-03 03:32:27

【JavaScript Demo】回到顶部功能实现的相关文章

HTML DOM 事件(实现一个简单的回到顶部功能)

HTML DOM 事件允许Javascript在HTML文档元素中注册不同事件处理程序.事件通常与函数结合使用,函数不会在事件发生前被执行! (如用户点击按钮). 利用onscroll事件写一个回到顶部功能,代码如下: <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <meta name="viewport" c

web前端入门到实战:HTML DOM 事件(实现一个简单的回到顶部功能)

HTML DOM 事件允许Javascript在HTML文档元素中注册不同事件处理程序.事件通常与函数结合使用,函数不会在事件发生前被执行! (如用户点击按钮). 利用onscroll事件写一个回到顶部功能,代码如下: <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <meta name="viewport" c

用Javascript实现回到顶部效果

用Javascript实现回到顶部效果 经常看到网页中有回到顶部的效果,今天也研究一下回到顶部有哪些方法.众所周知,用锚链接是实现回到最简单的方法,但是从用户体验效果来说,并不是最好的.(锚链接回到顶部时太快了,而且用户可能在看到某个感兴趣的东西想停下来,却停不下来),针对上面的缺点,我们试着用Javascript的方法来得到实现.思路是这个样子的: 1.首先用html和css构建基本的例子,代码如下 html部分: <div class="box"> <img sr

jquery javascript 回到顶部功能

今天搞了一个回到顶部的JS JQ功能 [javascript] view plaincopyprint? (function($){ $.fn.survey=function(options){ var defaults={width:"298",height:"207"}; var options=$.extend(defaults,options); if($.browser.msie){ var ieVersion=parseInt($.browser.ver

JavaScript实现回到顶部

HTML页面使用一个a标签,href内填写JavaScript:;以阻止默认行为,在学习实例的时候添加一个大的div来充实页面. demo: <a href="javascript:;" id="btn" title="回到顶部"></a> 其css代码为: #btn{ display: none; position: fixed; left: 90%; bottom: 40px; height:60px; width:

回到顶部功能

RUNJS地址:http://runjs.cn/code/acqs9fdd 主要用了 1.position:fixed;设置标签相对当前窗口的位置. 2.scroll()方法:监听滚动条 3.scrollTop()方法:窗口中滚动条的垂直偏移 html代码: <script id="jquery_182" type="text/javascript" class="library" src="/js/sandbox/jquery/

web页面浮动回到顶部功能和浮动广告

实现测试浮动回到顶部 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="BackToTopTwo.aspx.cs" Inherits="PracticeCollectionTwo.BackToTopTwo" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN

Javascript 实现回到顶部效果

html文件代码: <!DOCTYPE html> <html> <head> <title></title> <link rel="stylesheet" type="text/css" href="style.css"> <script type="text/javascript" src="script.js"><

【JQ+锚标记实现点击页面回到顶部】

前言:今天想写个页面常用到的[点击回到页面顶部或是首页的功能],生活和职场一样,总会有低谷的时候,这个时候咱也别怂.别怂.别怂,说三遍!那都不是事,工作没了,再找呗,就像我上周五,团队解散那天,我是笑着走的,还给小白挥了挥手,微笑一个.那句话叫什么来着,佛祖虽给你关了一扇门,说不定会再给你开一扇窗.明天我就换工作了,我感谢我的同学. a)下面看看实现,实现很简单,通过JQ判断滚动条向下滚动的长度大于多少时显示[回到顶部+回到首页]的图标(换一种理解:滚动条顶端距离页面顶部的距离),另外一种实现方