前端——函数防抖

本文介绍了如何使用函数防抖技术解决web开发中高频率触发的鼠标滚轮事件,通过定时器实现滚动事件的平滑响应,提升用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前端——函数防抖

晚上在视频学习过程中遇到一个比较高效的方法——函数防抖,就是通过定时器的方法来解决在web开发中如resize事件,mousemove事件和鼠标滚轮事件(jquery.mousewheel)等事件触发频率高的问题,下面主要以鼠标滚轮事件来讲解。

var timer = null;
$(window).mousewheel(function(event,dat){
	clearTimeout(timer); //函数节流的关键
	timer = setTimeout(function(){
		if (dat==-1) {
			$nowscreen++;
		}
		else {
			$nowscreen--;
		}
		if($nowscreen<0){
			$nowscreen=0;
		}
		if($nowscreen>$len-1){
			$nowscreen=$len-1;
		}
		$screen.animate({'top':-$h*$nowscreen},300);
		//document.title = $nowscreen;
		$pages.eq($nowscreen).addClass('moving').siblings().removeClass('moving');
		$points.eq($nowscreen).addClass('active').siblings().removeClass('active');
	},200);
				
})

这是一个整屏滚动案例中的部分js代码,这部分代码主要实现的功能是滑动鼠标滚轮时,屏幕跟着滚动,代码在没有添加执行一次的定时器时,鼠标稍微一滚动,屏幕就像打滑一样出去好几屏,这样太不利于用户的体验了,只能看见第一页和最后一页了。可以通过在触发滚轮事件时添加执行一次的定时器,最关键的是在定时器的前面要添加清除执行一次定时器的语句,目的是为了在鼠标滑动之后只保留最后一次的触发,同时将定时器设置延时一定时间,这样就可以解决鼠标滑动,屏幕切换像飞一样的问题了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值