点击回到顶部

今天学习了点击回到顶部,总体感觉简单,先上完整代码:

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			* {
				margin: 0;
				padding: 0;
			}

			.box {
				margin: 0 auto;
				text-align: center;
			}

			.header {
				height: 100px;
				background-color: white;
				border: 1px solid red;
			}

			.fixed {
				position: fixed;
				top: 0;
				margin-top: 0;
				height: 50px;
				width: auto;
				background-color: white;
				border: 1px solid red;
				padding-left: 2000px;
			}

			.bodyer {
				margin-top: 10px;
			}

			.topt {
				height: 50px;
				width: 50px;
				background-color: red;
				position: fixed;
				top: 500px;
				right: 0px;
				text-align: center;
				color: white;
				cursor: pointer;
				/*鼠标样式*/
				display: none;
			}

			img {
				width: 682px;
				height: 1900px;
			}
		</style>
	</head>

	<body>
		<div id="box" class="box">
			<div id="header" class="header">
				1
			</div>
			<div id="bodyer" class="bodyer">
				<img src="img/回到顶部.jpg" />
			</div>
		</div>
		<div id="topt" class="topt">
			返回</p>顶部
		</div>
		<script src="js/common.js"></script>
		<script type="text/javascript">
			//1获取元素
			var header = dgb(‘header‘);
			var bodyer = dgb(‘bodyer‘);
			var topt = dgb(‘topt‘);
			var juli = 10;
			//设置滚动大于10px时改变头部,
			window.onscroll = function() {
				var scrollTop = getScroll().scrollTop;
				if(scrollTop >= juli) {
					header.className = ‘fixed‘;
					topt.style.display = ‘block‘;
				} else {
					header.className = ‘header‘;
					topt.style.display = ‘none‘;
				}
			}
			//点击返回顶部按钮返回顶部
			var c = null;
			topt.onclick = function() {
				//判断是否有无定时器
				if(c) {
					clearInterval(c);
				}
				c = setInterval(function() {
					var target = 0; //顶部的距离
					var step = 10; //每次滚动的距离
					var curent = getScroll().scrollTop; //滚动出去的距离
					//判定有没有滚动
					if(curent > target) {
						step = -Math.abs(step);
					}

					//使页面开始一直往上滚
					curent += step;
					document.documentElement.scrollTop = curent;
					document.body.scrollTop = curent;
					//判断最后页面是不是到了最开始的位置
					if(Math.abs(curent) <= target) {
						clearInterval(c);
						document.documentElement.scrollTop = target;
						document.body.scrollTop = target;
						return;
					}
				}, 2)
			}
		</script>
	</body>

</html>

  

  common.js代码如下主要解决兼容问题:

// 获取页面滚动出去的距离,处理兼容性
function getScroll(){
	return{
		scrollTop:document.documentElement.scrollTop || document.body.scrollTop,
		scrpllLeft:document.documentElement.scrpllLeft || document.body.scrollLeft
	}
}
//获取ID
function dgb(id) {
	return document.getElementById(id);
}

  

其中有代码是实现头部滚动后的样式因过于简单就不写了

第一步 获取有用的元素和定义全局变量

其中 c 是定时器

//1获取元素
			var header = dgb(‘header‘);
			var topt = dgb(‘topt‘);
			var c = null;

  

第二步 点击事件

  1. 判断是否有无定时器

                            if(c) {
					clearInterval(c);
				}

  

  2. 设置定时器

    2.1 先创建变量

                        var target = 0; //顶部的距离
					var step = 10; //每次滚动的距离
					var curent = getScroll().scrollTop; //滚动出去的距离

  

    2.2 判断页面有没有滚动,如果有使每次自动滚动的距离设置为负数为下一步回到顶部做铺垫

                          //判定有没有滚动
					if(curent > target) {
						step = -Math.abs(step);
					}

  

    2.3 使页面往上一直滚动

                        //使页面开始一直往上滚
					curent += step;
					document.documentElement.scrollTop = curent;
					document.body.scrollTop = curent;

  

    2.4判断最后页面是不是到了最开始的位置

                            //判断最后页面是不是到了最开始的位置                                                        if(Math.abs(curent) <= target) {
						clearInterval(c);
						document.documentElement.scrollTop = target;
						document.body.scrollTop = target;
						return;
					}

  

点击事件中所有代码

                  //点击返回顶部按钮返回顶部
			topt.onclick = function() {
				//判断是否有无定时器
				if(c) {
					clearInterval(c);
				}
				c = setInterval(function() {
					var target = 0; //顶部的距离
					var step = 10; //每次滚动的距离
					var curent = getScroll().scrollTop; //滚动出去的距离
					//判定有没有滚动
					if(curent > target) {
						step = -Math.abs(step);
					}

					//使页面开始一直往上滚
					curent += step;
					document.documentElement.scrollTop = curent;
					document.body.scrollTop = curent;
					//判断最后页面是不是到了最开始的位置
					if(Math.abs(curent) <= target) {
						clearInterval(c);
						document.documentElement.scrollTop = target;
						document.body.scrollTop = target;
						return;
					}
				}, 2)
			}

  

原文地址:https://www.cnblogs.com/hewenwu199712/p/9806775.html

时间: 2024-10-07 21:40:09

点击回到顶部的相关文章

JS-DOM:基础实操---点击回到顶部

CSS部分 <style type="text/css">body{    height: 3000px;}#div1{    height: 100px;    width: 100px;    background-color: #ccc;    position: fixed;    right: 0;    bottom: 0;}    </style> HTML部分 <body><div id="div1">

js点击回到顶部2

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>点击回到页面顶部</title> <style type="text/css"> *{margin: 0;padding: 0;} .scroll_top{width:60px;height: 60px;border: 1px solid red;position:

js点击回到顶部

---恢复内容开始--- <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>点击回到页面顶部</title> <style type="text/css"> *{margin: 0;padding: 0;} .scroll_top{width:60px;height: 60px;border: 1px solid

jquery点击回到顶部

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>回到顶部</title> <meta name="viewport" content="width=1200, maximum-scale=1.0, user-scalable=1"> <style&

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

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

点击按钮回到顶部

写页面的时候,经常遇到当滚动条离开页面顶部的时候,会显示一个回到顶部的按钮,点击回到顶部,页面就滑动到页面的顶部.直接贴代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>返回顶部</title> <script src="jquery-1.11.3.js"></script> <style&

UITableView 或 UIScrollView 点击状态栏列表回到顶部

整理来自互联网- 这是tableView继承的scrollView的一个属性 scrollsToTop. 官方说明是这样的: // When the user taps the status bar, the scroll view beneath the touch which is closest to the status bar will be scrolled to top, but only if its `scrollsToTop` property is YES, its del

转:5种回到顶部的写法从实现到增强

http://www.cnblogs.com/xiaohuochai/p/5836179.html 前面的话 本文先详细介绍回到顶部的5种写法,然后对其实现功能增加,最后得到最终实现 写法 [1]锚点 使用锚点链接是一种简单的返回顶部的功能实现.该实现主要在页面顶部放置一个指定名称的锚点链接,然后在页面下方放置一个返回到该锚点的链接,用户点击该链接即可返回到该锚点所在的顶部位置 [注意]关于锚点的详细信息移步至此 <body style="height:2000px;">

5种回到顶部的写法从实现到增强

× 目录 [1]写法 [2]增强 [3]实现 前面的话 本文先详细介绍回到顶部的5种写法,然后对其实现功能增加,最后得到最终实现 写法 [1]锚点 使用锚点链接是一种简单的返回顶部的功能实现.该实现主要在页面顶部放置一个指定名称的锚点链接,然后在页面下方放置一个返回到该锚点的链接,用户点击该链接即可返回到该锚点所在的顶部位置 [注意]关于锚点的详细信息移步至此 <body style="height:2000px;"> <div id="topAnchor&