原生js实现返回顶部特效

index.html

<!DOCTYPE html>
<html>
   <head>
     <meta charset="UTF-8">
     <title>Document</title>
     <link herf="index.css">
   </head>
  <body>
        <span id="icon"></span>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <p>我是程序员,平凡有一点理想,渴望让世界不一样!</p>
        <script src="scroll.js"></script>
                <script src="index.js"></script>
       </body>
</html>

index.css

            *{
                padding: 0;
                margin: 0;
                border: none;
                list-style: none;
            }
            body{
                background-color: #ddd;
            }
            p{
                text-align: center;
                font-size: 25px;
                margin-bottom: 30px;
            }
            #icon{
                width: 43px;
                height: 43px;
                background: url("./images/to_top.png") no-repeat;
                background-size: 100% 100%;
                position: fixed;
                bottom: 15px;
                right: 20px;
                display: none;

            }

index.js

             window.onload=function(){
                 //定义变量
                 let scroll_top=0;
                 let begin=0,end=0,timer=null;
                 //监听窗口滚动事件
                 window.onscroll=function(){
                     scroll_top=scroll().top;
                     //显示和隐藏
                     scroll_top>0?show($("icon")):hidden($("icon"));
                 }
                 //监听图标的点击事件
                 $("icon").onclick=function(){
                     //清除定时器
                     clearInterval(timer);
                     //开启定时器
                     timer=setInterval(function(){
                        begin+=(end-begin)*0.2;
                        window.scrollTo(0,begin);
                        //判断运动结束条件,清除定时器
                        if(Math.round(begin)===end){
                            clearInterval(timer);
                        }

                     },30);
                 }
             }
             function $(id){
                 return typeof id==="string"?document.getElementById(id):null;
             }
             function show(obj){
                 return obj.style.display="block";
             }
             function hidden(obj){
                 return obj.style.display="none";
             }

scroll.js

function scroll(){
    if(pageYOffset!==null){
        return {
            top:window.pageYOffset,
            left:window.pageXOffset
        }
    }else if(document.compatMode===CSS1Compat){
        return {
            top:document.documentElement.scrollTop,
            left:document.documentElement.scrollLeft
        }
    }
    return {
        top:document.body.scrollTop,
        left:document.body.scrollLeft
    }
}

原文地址:https://www.cnblogs.com/zhang-jiao/p/9842380.html

时间: 2024-10-10 21:40:55

原生js实现返回顶部特效的相关文章

挺个性的jQuery返回底部、返回顶部特效

运用了所学习的jQuery特性,制作了这款效果,该效果集结了返回底部.返回顶部.网站留言导航三种功能,网站留言的链接你可以修改为任意一个您想导航的链接,这个可以灵活运用了.本款效果的亮点在于兼容性和动画效果,以及设计美观的箭头等. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&q

jquery返回顶部特效

<style> p#back-to-top{position:fixed; bottom:100px;right:10px; display: none; } p#back-to-top a{ text-align:center; text-decoration:none; color:#d1d1d1; display:block; width:30px; /*使用CSS3中的transition属性给跳转链接中的文字添加渐变效果*/ transition:color 1s; -moz-tra

前端 css+js实现返回顶部功能

描述: 本文主要是讲,通过css+js实现网页中的[返回顶部]功能. 实现代码: HTML: 1 <div> 2 <button onclick="returnTop()" id="btnTop" title="返回顶部">返回顶部</button> 3 </div> CSS: 1 /* return top */ 2 #btnTop { 3 display: none; 4 position: f

【转】用jquery编写动态的返回顶部特效

jquery代码: function gotoTop(min_height){ //预定义返回顶部的html代码,它的css样式默认为不显示 var gotoTop_html = '<div id="gotoTop">返回顶部</div>'; //将返回顶部的html代码插入页面上id为page的元素的末尾 $("#page").append(gotoTop_html); $("#gotoTop").click(//定义返

返回顶部特效

<div style="height:3000px; background:gray;"> clientHeight:内容可视区域的高度,与页面内容无关<br/><br/> offsetHeight: IE.Opera 认为 offsetHeight = clientHeight + 滚动条 + 边框. NS.FF 认为 offsetHeight 是网页内容实际高度,可以小于 clientHeight.<br/><br/> s

js平滑返回顶部代码

随便找的一个,使用时直接调用gotoTop就行了,至于调速度之类的我没试,有兴趣的自己试试吧 注意:如果你想改变这个函数的名称千万不要忘了要同时改变第37行的那个gotoTop 1 /** 2 * JavaScript脚本实现回到页面顶部示例 3 * @param acceleration 速度 4 * @param stime 时间间隔 (毫秒) 5 **/ 6 function gotoTop(acceleration,stime) { 7 acceleration = accelerati

原生js实现回到顶部

window.onload = function() { document.body.style.height='5000px'; window.scrollTo(0,500); // var timer = setInterval(function() { // var scrolltop = document.documentElement.scrollTop || document.body.scrollTop; // window.scrollBy(0, -100) // if (scr

原生JavaScript实现返回顶部的通用方法

function backTop(btnId) { var btn = document.getElementById(btnId); var d = document.documentElement; var b = document.body; window.onscroll = set; btn.style.display = "none"; btn.onclick = function() { btn.style.display = "none"; wind

js常用返回网页顶部几种方法

一.使用锚标记 此方法最简单,只需在body下放个隐藏的锚点标记,内容如下:  代码如下 复制代码 <a name="top" id="top"></a> 然后,在网页底部放一个访问链接即可:  代码如下 复制代码 <a href="#top" target="_self">返回顶部</a> 此方法效果是一次直接跳到顶部,而且URL地址栏会显示个#top,追求完美的可使用下面方法