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:;
margin:;
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
}
}

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

  1. 基于原生js的返回顶部组件,兼容主流浏览器

    基于原生js的返回顶部插件,兼容IE8及以上.FF.chrome等主流浏览器. js文件中封装了getScrollTop()和changeScrollTop()函数分别用于获取滚动条滚动的高度和修改滚 ...

  2. 原生JS实现返回顶部和滚动锚点

    ;(function (window,doc,undefined) { function rollingAnchor(){ this.timer =''; } rollingAnchor.protot ...

  3. js实现返回顶部功能的解决方案

    很多网站上都有返回顶部的效果,主要有如下几种解决方案. 1.纯js,无动画版本 window.scrollTo(x-coord, y-coord); window.scrollTo(0,0); 2.纯 ...

  4. JavaScript返回顶部特效

    样式: <style type="text/css"> /*返回顶部特效*/ a { border: none; text-decoration: none; outl ...

  5. jquery返回顶部特效

    <style> p#back-to-top{position:fixed; bottom:100px;right:10px; display: none; } p#back-to-top ...

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

    描述: 本文主要是讲,通过css+js实现网页中的[返回顶部]功能. 实现代码: HTML: <div> <button onclick="returnTop()" ...

  7. js网页返回顶部和楼层跳跃的实现原理

    这是简单的效果图. (实现楼层间的跳跃,主要依靠的是 window.scrollTo(x,y)方法 ,将浏览器的可见区域移动到指定的x,y坐标上.)   说楼层跳跃前,先温习下,一般网页在高度较大时, ...

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

    jquery代码: function gotoTop(min_height){ //预定义返回顶部的html代码,它的css样式默认为不显示 var gotoTop_html = '<div i ...

  9. WEB前端--返回顶部特效源码

    <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...

随机推荐

  1. playframework 一步一步来 之 日志 (三)

    在paly中自定义配置logback,也很简单,只需在conf folder下添一个application-logger.xml或者logger.xml就行了.(出处:"If you cre ...

  2. python3 第二十六章 - 内置函数之Number相关

    数学函数 函数 返回值 ( 描述 ) 实例 abs(x) 返回数字的绝对值,如abs(-10) 返回 10 print(abs(-10)) =======输出:====== 10 ceil(x) 返回 ...

  3. Python3.7 Scrapy crawl 运行出错解决方法

    安装的是Python3.7,装上依赖包和scrapy后运行爬虫命令出错 File "D:\Python37\lib\site-packages\scrapy\extensions\telne ...

  4. Scrum冲刺阶段4

    成员今日完成的任务 人员 任务 何承华 学习后端设计 陈宇 后端设计 丁培辉 学习后端设计 温志铭 日程添加界面设计(一半) 杨宇潇 日程添加界面设计(一半) 张主强 服务器构建 成员遇到的问题 人员 ...

  5. shell脚本编写某一文件夹内拷贝某一段文件(有则跳过没有则拷贝)

    必须是同一台服务器下,或者挂载目录,不同服务器下没办法查询目录中是否有该文件 如果不在同一服务器下,可以把要查询的那个服务器的文件夹设置共享挂在到当前服务器 或者可以把脚本写到要拷贝的服务器上,那么s ...

  6. 做seo应该如何选择网站程序?

    网站程序:(具体网站案例,可在官网看到)绝大多数情况下,我们将做的网站有以下几种1.个人博客,推荐的程序Wordpress(php的程序,比较强大),Zblog(asp的程序,比较简单)2.门户网站( ...

  7. Spring RestTemplate get post 请求 携带 headers

    RestTemplate 1.我用RestTemplate请求时 我把他注入到容器里  这样可以 什么用什么时候拿 2.也可以new出来 不过我不喜欢 所以就没有用new的 下面我自己的方法   先注 ...

  8. Rabbimq 安装过程,还有踩得坑!centos 安装

    一 .安装erlang 1 添加yum 源,在/etc/yum.repos.d 下添加 rabbitmq-erlang.repo,内容如下 # In /etc/yum.repos.d/rabbitmq ...

  9. 关于Asp.net事件,如何在触发子控件的事件时,同步触发父页面的事件

    对页面引用自定义控件后,通过绑定自定义事件,页面绑定子控件的事件,在子控件做了某些修改动作后,如何同步操作父页面的方法:下面我煮了个栗子,同学们可以来尝一尝试一试 a.aspx 引用 UserCont ...

  10. Codeforces Round #485 (Div. 2) D. Fair

    Codeforces Round #485 (Div. 2) D. Fair 题目连接: http://codeforces.com/contest/987/problem/D Description ...