javascript 节流器防抖动,返回顶部

本文介绍了一个实现网页返回顶部功能的HTML和JavaScript代码示例,结合了CSS样式定义按钮的外观和位置。同时,使用了节流函数优化滚动事件,避免频繁触发,提高页面性能。当页面滚动超过一定距离时,返回顶部按钮显示;否则隐藏。点击按钮,页面平滑滚动到顶部。
摘要由CSDN通过智能技术生成
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
		button{
			width: 80px;
			height: 30px;
			background-color: red;
			color: white;
			text-align: center;
			border: 0;
			border-radius: 3px;
			position: fixed;
			bottom:20px ;
			right: 30px;
			z-index: 99;
			display: none;
		}
		</style>
	</head>
	<body>
		<button id="mybtn" name="mybtn" onclick="topFn()">回到顶部</button>
		<div style="background-color: black;color: white;padding: 30px;">向下滑动</div>
		<div style="background-color: lightgrey;padding: 30px 30px 2500px;">该实例演示如何实现网页返回顶部</div>
		<script language="javascript">
		//单继承单复制对象属性
		var extend=function(target,source){
			for(var property in source){
				target[property]=source[property];
			}
			return target;
		}
		//节流器
		var throttle=function(){
			var isClear=arguments[0],fn;
			if(typeof isClear==='boolean'){
				fn=arguments[1];
				fn.__throttleID&&clearTimeout(fn.__throttleID);
			}else{
				fn=isClear;
				param=arguments[1];
				var p=extend({
					context:null,
					args:[],
					time:300
				},param);
				arguments.callee(true,fn);
				fn.__throttleID=setTimeout(function(){
					fn.apply(p.context,p.args)
				},p.time)
			}
		};
		
		function scrollFn(){
			if(document.body.scrollTop>100||document.documentElement.scrollTop>100){
				document.getElementById('mybtn').style.display="block";
			}else{
				document.getElementById('mybtn').style.display="none";
			}
		}
		function topFn(){
			document.body.scrollTop=0;
			document.documentElement.scrollTop=0;
		}
		window.onscroll=function(){
			throttle(scrollFn,[50]);
		};
		
		</script>
	</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值