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. skyline开发——读取Shapefile要素属性

    double len; IFeatures66 features = featureLayer.FeatureGroups.Polyline.GetCurrentFeatures(); foreach ...

  2. left join中where与on的区别

    举例进行说明,我们现在有两个表,即商品表(products)与sales_detail(销售记录表).我们主要是通过这两个表来对MySQL关联left join 条件on与where 条件的不同之处进 ...

  3. CKeditor5 图片上传

    下面是自定义了一个适配器,之前我一直是在 ClassicEditor .create( editorElement, { ckfinder: { uploadUrl: '/ckfinder/core/ ...

  4. 大面积project.pbxproj冲突问题解决

    在团队开发中,经常会有project.pbxproj的冲突出现. 所以我们添加过新的文件后,要及时的提交,养成好习惯.以免出问题. 但是总有一些时候忘记提交出现大面积的冲突,然后把==== <& ...

  5. JavaScript深拷贝

    1,JSON.parse(JSON.stringify(obj)) 使用JSON实现深拷贝必须要求对象是符合JSON安全的,不了解JSON安全的自行百度. 2,lodash/underscore  _ ...

  6. 移动端--用PX为单位+JS框架 实现页面布局

    一:大家先下载metahandler.js 二:准备一个用px实现的移动页面(宽度固定死的页面),引入metahandler.js框架 1.视口设置 width=640,是根据psd图来设置,有多宽设 ...

  7. 收集几个html和element-ui的录入控件

    我希望有一个控件去显示或输入账本的金额 先做一些资料收集,也希望大家给个建议 输入银行账号会设置每四位添加一个空格 https://blog.csdn.net/wkx18330698534/artic ...

  8. bzoj1038(半平面交)

    #include<iostream> #include<cstring> #include<cmath> #include<cstdio> #inclu ...

  9. Nginx 教程(1):基本概念

    简介 嗨!分享就是关心!所以,我们愿意再跟你分享一点点知识.我们准备了这个划分为三节的<Nginx教程>.如果你对 Nginx 已经有所了解,或者你希望了解更多,这个教程将会对你非常有帮助 ...

  10. spark入门

    这一两年Spark技术很火,自己也凑热闹,反复的试验.研究,有痛苦万分也有欣喜若狂,抽空把这些整理成文章共享给大家.这个系列基本上围绕了Spark生态圈进行介绍,从Spark的简介.编译.部署,再到编 ...