jQuery-点击按钮实现回到顶部的两种方式

1.点击按钮,快速回到顶部

<html>
  <head>
    <base href="<%=basePath%>">
    <title>My JSP 'practice_02.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<style type="text/css">
		*{margin:0;padding:0;}
		.all {
			width:100%;
			height:180%;
		}
		.btn {
			position:fixed;
			bottom:20px;
			right:20px;
			width:80px;
			height:30px;
			border-radius:5px;
			background:red;
		}
	</style>
  </head>
  <body>	
  	<div class="all">
  		<button class="btn" id="btn1">回到顶部</button>
  	</div>
  	<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
	<script type="text/javascript">
		$('#btn1').click(function() {
			$('html,body').scrollTop(0);
		});
	</script>
  </body>
</html>

2.点击按钮,缓慢的回到顶部

在这里我们来讲解一下,具体实现原理
就拿看电影来举例子,我们所看的电影都是一帧一帧播放的,肉眼对于那细小的间隔是分辨不出来的,所以我们认为电影的放映都很流畅,其实是一段一段连起来的。同样我们要实现从下到上缓慢的上升,就是一段一段的动,并且每一段都是迅速到达目的地,这样连起来就成匀速的了

<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'practice_02.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<style type="text/css">
		*{margin:0;padding:0;}
		.all {
			width:100%;
			height:180%;
		}
		.btn {
			position:fixed;
			bottom:20px;
			right:20px;
			width:80px;
			height:30px;
			border-radius:5px;
			background:red;
		}
	</style>
  </head>
  
  <body>	
  	<div class="all">
  		<button class="btn" id="btn1">回到顶部</button>
  	</div>
  	<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
	<script type="text/javascript">
		$('#btn1').click(function() {
			//总距离
			var distance = $('html').scrollTop()+$('body').scrollTop();
			//height为了更新当前滚动条的高度而用
			var height = $('html,body');
			//总时间(500ms)
			var time = 500;
			//每间隔intervalTime时间滚动一次
			var intervalTime = 50;
			//计算每次滑动的距离
			var itemDistance = distance/(time/intervalTime);
			//使用循环定时器不断滚动
			var intervalId = setInterval(function() {
				distance -= itemDistance;
				if(distance<=0) {//到达顶部,停止定时器
					distance = 0;
					clearInterval(intervalId);
				}
				//更新当前滚动条的高度
				height.scrollTop(distance);
			},intervalTime);
		});
	</script>
  </body>
</html>

3.效果图参考:

在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梁同学与Android

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值