js实现回到顶部功能

一、总结

一句话总结:

可以通过js或者jquery可以很快的控制页面的属性,比如高度等等
    //设置当前视口的顶端数值
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;
}
}
}

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

转自或参考:【JavaScript Demo】回到顶部功能实现
https://www.cnblogs.com/yc-755909659/p/5988005.html

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

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:; }
.btnTop:hover { opacity:;}
.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;
}
}
}
};

现在的效果如下:

 

js实现回到顶部功能的更多相关文章

  1. 通过js实现回到顶部功能

    许多商城网址,当我们滚动到一定高度时,我们会发现一般会出现一个回到顶部的js选项,点击轻松实现回到顶部,交互效果会显得比较人性化,且回到顶部过程中若在滚动滚动条时可以停止滚动,现在让我们来实现吧 我总 ...

  2. JS实现回到顶部效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. js原生回到顶部

    <!DOCTYPE html><html><head> <meta content="测试demo" name="Keyword ...

  4. 页面滚动事件和利用JS实现回到顶部效果

    页面滚动 事件:window.onscroll, 获得页面滚动位置:document.body.scrollTop: HTML代码: 这里注意此处逻辑,大于500就显示,否则就隐藏,还有注意如果变量名 ...

  5. jQuerry点击按钮回到顶部功能

    简单实现点击按钮回到顶部功能

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

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

  7. jquery javascript 回到顶部功能

    今天搞了一个回到顶部的JS JQ功能 (function($){ $.fn.survey=function(options){ var defaults={width:"298", ...

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

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

  9. js——页面回到顶部

    很久都没有去慕课网学习学习了,刚恰好就看见了一个用的比较多的小例子——页面回到顶部,记得之前自己也是在初学web时,被这个坑了一回,因此今天特地拿来分享分享…… <!DOCTYPE html&g ...

随机推荐

  1. 客户想要的 vs 客户实际预算:漫画解读软件开发模式 ​​​​

    转自:http://blog.jobbole.com/113230/ 1913 年,美利坚工业之神——亨利福特,发明了世界上第一条流水线,汽车工业从此进入了大规模生产的时代.丰田公司提出的丰田生产系统 ...

  2. ORACLE_笔记_练习题目

    一.plsql用法网址及时复习 extract()函数----用于截取年.月.日.时.分.秒 https://www.cnblogs.com/xqzt/p/4477239.html case when ...

  3. mORMot学习笔记3 数据集转Json

    usesSynCommons, SynDB, SynOleDB; procedure TForm1.DataToJsonClick(Sender: TObject); var Conn: TOleDB ...

  4. Java在常见的spring面试问题TOP50

    1. 一般问题 1.1. 不同版本的 Spring Framework 有哪些主要功能? Version Feature Spring 2.5 发布于 2007 年.这是第一个支持注解的版本. Spr ...

  5. vue2.0+webpack+vuerouter+vuex+axios构建项目基础

    前言 本文讲解的是vue2.0+webpack+vuerouter+vuex+axios构建项目基础 步骤 1.全局安装webpack,命令 npm install webpack -g 注意,web ...

  6. Shell脚本快速查看网段内ip占用情况和可用ip

    思想就是整个网段ping一遍,对于ping不通的,解析其失败的字符来判定 #!/bin/bash head_add=${} address=${head_add%.*} echo address=$a ...

  7. vue 自定义指令的魅力

    [第1103期]vue 自定义指令的魅力 点点 前端早读课 2017-11-08 前言 很多事情不能做过多的计划,因为计划赶不上变化.今日早读文章由富途@点点翻译分享. 正文从这开始- 在你初次接触一 ...

  8. 关于博主skywang123456文章——二叉堆(三)之 Java的实现的质疑

    博客园博主skywang123456(以下简称s博主)是一个大牛级的人物,相信很多程序员都拜读过他的博客,我也不例外,并且受益匪浅.但是对于文章二叉堆(三)之 Java的实现我有一些疑惑,写在这里,供 ...

  9. docker零碎知识

    一.关于容器的时区配置: docker中如果对时区不加限制,默认会采用GMT时间,对于东八区来说,需要修改,修改方式有多种: 1.在Dockerfile中的修改 FROM centos: MAINTA ...

  10. python之抽象类&abc模块+虚拟子类&register

    抽象类和接口: java 我们先从java讲起,没有java基础的可以略过. (挖坑) python 在python并没有抽象类之说,或者说抽象类=接口类(区别于接口) 继承有两种用途: 一:继承基类 ...