前端 —— JavaScript 基础篇 缓动动画(先快后慢的动画效果)demo

电脑蓝牙与ESP32蓝牙连接,让电脑发现ESP32 让PC发现ESP32蓝牙 阅读详情

今天来个 缓动动画的小例子 ,是为了方便自己日后的复制粘贴,若是能帮助到大家,拿走不谢。话不多说,直接上代码。

 

<style type="text/css">
		*{
			margin: 0;
			padding: 0;
		}
		.box{
			width: 200px;
			height: 200px;
			background: yellow;
			text-align: center;
			position: relative;
			top: 0px;
			left: 0;

		}
		button{
			padding: 0 20px;
			height: 40px;
			margin-top: 40px;
		}
	</style>

<div class="box">
	动画越来越来越慢,叫缓动动画
</div>
<button>点击有动画效果</button>

js 部分:

<script type="text/javascript">
		var odiv = document.querySelector('.box');
		var obtn = document.querySelector('button');
		function animate(odiv,target,callback){
			clearInterval(odiv.timer);
			odiv.timer = setInterval(function(){
				console.log(1);
				var step = (target - odiv.offsetLeft) / 10 ;// 目标距离-现在的距离
				step = step > 0 ? Math.ceil(step) : Math.floor(step);
				if (odiv.offsetLeft === target) {
					clearInterval(odiv.timer);
					if (callback) {
						callback();
					}
				}
				
				odiv.style.left = odiv.offsetLeft + step + 'px';
				
			},30);			
		}
		obtn.addEventListener('click',function(){
			animate(odiv,1000,function(){
				alert('动画结束');
			})
		})

</script>

思路解析:

目标距离:target:500
第一次 (500-0) /10  =50
第二次 (500-50)/10  =45
第三次  (500-(50+45))/10 =40.5     
 第二次移动结束后div的距离是 95=50+45 也就是第三次开始移动的初始位置
 ...

 当快速点击按钮时:就等于多次调用了方法,计时器一直在叠加。速度越来越块
 解决:
     1、将计时器赋值给对象元素 odiv.timer,再执行计时器时 先停到计时器
     2、小数点问题:向右侧移动(目标值>0)时 向上取整数,让其更接近目标
                     Math.ceil(step)  比如:7.1  向上取 8
                     向左侧移动(目标值<0)时 向下取整数,同理
                     Math.floor(step)  比如:-9.9 向下取 -10
     3、将页面文档的默认的内外编剧清零时 

 增加功能:
     回调函数:动画结束后执行的动作
     触发事件后 
         调用计时器方法时:传递第三个参数 此参数是个函数;
         计时器的方法接收第三个形参,在动画结束后调用这个参数

 

 

 

 

 

我的文章都是学习过程中的总结,如果发现错误,欢迎留言指出,我及时更正。

Zynq7020实战:ARM Cortex-A9降频避坑指南(附温度对比测试) 本文详细介绍了如何在Zynq7020平台上对ARM Cortex-A9处理器进行降频优化,以降低功耗并提升系统稳定性。通过分析时钟架构、提供实战操作步骤和温度对比测试数据,帮助开发者有效避免降频过程中的常见问题,实现嵌入式系统的高效能耗管理。 阅读详情

相关推荐

Android手机本地语音转文字实战:用FunASR+ONNX Runtime打造离线ASR应用(附模型下载)

本文详细介绍了如何在Android应用中集成FunASR和ONNX Runtime,构建高性能的离线语音识别系统。通过模型选择、工程化集成和性能调优等实战技巧,开发者可以实现本地语音转文字功能,有效保护用户隐私并提升响应速度。

weixin_29046611的博客 266

JavaScript - 缓动动画(移动速度由快到慢)

盒子不是匀速移动的,而是由快到慢,缓缓停下,看起来比较顺滑。

Codefreyy 1368

QMT中ContextInfo的使用注意

QMT中ContextInfo下声明的全局变量的使用注意事项

路在何方 2810

javaScript 实现元素匀速运动 元素缓速运动(先快后慢)

1、实现元素匀速运动  Title #cicle { width: 20px; height: 20px; border-radius: 50%; background-color: #8c0000; position: abs

waterDjj的博客 2021

AC360变频器使用案例

AC360变频器使用案例!

QING_BOSS的博客 518

别再为多相机标定头疼了!用VisionMaster统一坐标系的保姆级教程

本文详细介绍了使用VisionMaster平台解决多相机视觉系统中坐标系统一问题的完整流程。从标定板选择到N点标定,再到实战演练,提供了从原理到落地的全方位指导,帮助工程师高效解决多相机定位引导中的坐标偏差问题。

weixin_38168322的博客 634

Tween.js动画函数使用demo

Tween.js使用指南、动画函数、数字增长动画

weixin_50367873的博客 328

国科大学习资料--数据挖掘(刘莹)--第三章习题及参考答案

国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 第 3 章分类与回归 3.1简述决策树分类的主要步骤。 答:决策树生成的过程如下: (1)对数据源进行数据预处理, 得到训练集和测试集; (2)对训练集进行训练; (3)对初始决策树进行树剪枝; (4)由所得到的决策树提取分类规则; (5)使用测试数据集进行预测,评估决策树模型; 3.2给定决策树,选项有:(1)将决策树转换成规则,然后对结果

无名何许人的博客 3093

threejs官方demo学习(1):animation

threejs官方demo学习(1):animation

weixin_41897680的博客 3122

《YOLOv8-seg改进》专栏指导书册 &手把手创新教程

学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研;1)手把手教你如何训练YOLOv8-seg;2)模型创新,提升分割性能;3)独家自研模块助力分割;

会AI的学姐 3814

GNSS/RTK定位失效时的替代方案:视觉惯性里程计(VIO)

GNSS/RTK定位失效时的替代方案:视觉惯性里程计(VIO)​ ,人工智能,计算机视觉,大模型,AI,本文详细介绍了视觉惯性里程计(VIO)作为GNSS/RTK定位失效时的替代方案。阐述了VIO的定义、优势及与其他定位技术的区别,讲解了视觉传感器和IMU的工作原理及数据融合原理,分析了时间同步、标定等关键技术,介绍了VINS-Mono等常用框架、简单代码示例、应用场景,还探讨了VIO面临的挑战与未来发展趋势,展现了其在多个领域的重要性与应用潜力。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 16万+

前端学习(936):缓动动画原理

歌谣的博客 356

人群仿真软件:Pathfinder_(14).与其他软件的集成与互操作

在人群仿真软件的二次开发中,与其他软件的集成和互操作是非常重要的。通过数据导入导出、接口调用和脚本编写,可以显著提升仿真的准确性和实用性。Pathfinder提供了多种数据格式的支持和丰富的API,使得与其他软件的集成变得简单高效。无论是建筑模型的导入、仿真结果的导出,还是实时数据的交换,Pathfinder都能满足用户的需求。

kkchenjj的博客 1017

JavaScript Tween算法及缓动效果javascript

javascript tween算法及缓动效果 flash做动画时会用到tween类,利用它可以做很多动画效果,例如缓动、弹簧等等。 我这里要教大家的是怎么利用flash的tween类的算法,来做js的tween算法,并利用它做一些简单的缓动效果。 实例效果 tween类型: linearquadraticcubicquarticquinticsinusoidal exponentia

chaoxidawang的专栏 2042

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

使用js实现拖动缓动的效果

话不多说,先上效果,一个体验非常好的拖拽缓动的效果,让页面提升一个档次。 这个效果看似很简单,到也困惑了很长时间,为什么别人写出来的拖拽体验为什么这么好? 直到我自己实现了以后,才发现,原来我想的实现方式不对。接下来,我通过简短的几句话,来提供这个功能的实现思路。 首先,我们要明白,我们鼠标拖拽是在一个2d平面上拖拽 2d平面只有x轴和y轴,而且获取的拖拽值也是基于平面的像素获取的。所以,我们第...

现在学习也不晚 2905

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

JavaScript Tween算法及缓动效果

Flash做动画时会用到Tween类,利用它可以做很多动画效果,例如缓动、弹簧等等。 我这里要教大家的是怎么利用flash的Tween类的算法,来做js的Tween算法,并利用它做一些简单的缓动效果。 请先来这里看看效果 或者下载实例 效果说明 首先大家到这里下载flash的as脚本(建议看看这里的demo),1.0和2.0都可以(里面的算法都一样)。 例如打开2.0的可以看到几个as文件

剑胆琴心-.Net 学习笔记 713

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

JS实现动画特效2(缓动函数封装、导航栏筋斗云效果)

JS实现的动画特效:手风琴特效展示图片、筋斗云动画小知识1.浏览器的offsetLeft是就近取整,要实现向上取整或向下取整,可以调用Math.ceil()或Math.floor()缓动动画的初级封装函数,为手风琴动画做铺垫实现效果代码HTMLCSSJS缓动动画的高级封装函数,为手风琴动画做铺垫实现效果筋斗云动画实现效果代码HTMLCSSJS 小知识 1.浏览器的offsetLeft是就近取整,要实现向上取整或向下取整,可以调用Math.ceil()或Math.floor() 缓动动画的初级封装函数,为手风

weixin_44584059的博客 1274

SVG-Morpheus高级应用:自定义缓动函数与复杂动画效果实现

SVG-Morpheus是一款强大的JavaScript库,能够让SVG图标平滑地从一个形态过渡到另一个形态,完美实现了Material Design中的动态细节转换效果。本文将深入探讨如何利用SVG-Morpheus创建高级动画效果,重点介绍自定义缓动函数的实现方法以及复杂动画场景的应用技巧。 ## 一、了解SVG-Morpheus的缓动系统 SVG-Morpheus内置了丰富的缓动函数,这

gitblog_01183的博客 638

JavaScript——封装缓动函数案例

<style> #demo{ width: 100px; height: 100px; background-color: #ffdfef; position: absolute; } </style> </head> <body> <input id="btn" type="button" value="点我鸭~"/&

weixin_46360905的博客 249

JavaScript 特效:旋转木马(缓动动画,透明度和层级变化的动画)

demo.html:&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head lang="en"&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;旋转木马轮播图&lt;/title&gt; &lt;link rel="stylesheet" href

houyanhua1的专栏 595

JS飞入飞出动画 加速动画 缓入缓出效果

JS飞入飞出动画 加速动画 换入换出效果 * @param elem {HTMLElement} 执行动画的HTML元素 * @param params {JSON} 动画执行过过程中需要修改的HTML属性 * @param duration {Number} 可选,动画执行时间,单位毫秒 * @param easing {String} 可选,动画执行的方式,缓入easeIn、缓出easeOut

Harry Blog 550

JavaScript 缓动(变速)动画封装:改变多个CSS属性的合成动画

demo.html:&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head lang="en"&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;&lt;/title&gt; &lt;style&gt; div { pos

houyanhua1的专栏 655

缓动动画原理

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang=...

a63438840的博客 193

html5中canvas的图片缓动效果的原理——积分学的实际应用(原创)

本文系原创文章,转载请注明出处(本人qq空间或博客园或IT EYE的相关文章链接均可)。     相信很多朋友都用过jquery的缓动效果javascript,但对于它的实现毫无头绪,而且缓动函数在各类UI中都很实用,若不清楚其原理,则每一次用其他语言时都需要寻找相应的插件方可,这无疑大大制约了开发人员的创新需求。本文章主要讲解缓动函数的基本原理以及用javascript在ht...

iteye_18055的博客 479

Adobe Edge Animate –弹性的方块-使用tweenmax缓动效果

Adobe Edge Animate –弹性的方块-使用tweenmax缓动效果 版权声明: 本文版权属于 北京联友天下科技发展有限公司。 转载的时候请注明版权和原文地址。 此前有Edge爱好者提出一个疑问:在Edge中有动画的缓动效果,但是如何使用tweenmax来实现这个缓动呢?这是个比较有意思的问题,带着这个疑问查找了网上的一些资料后,做出了一个demo,在此跟各位分享。 一、下载...

weixin_30724853的博客 272

Tween算法及缓动效果

JavaScript Tween算法及缓动效果 Flash做动画时会用到Tween类,利用它可以做很多动画效果,例如缓动、弹簧等等。 我这里要教大家的是怎么利用flash的Tween类的算法,来做js的Tween算法,并利用它做一些简单的缓动效果。 实例效果 Tween类型:   Linear  Quadrati

xuxl2050的专栏 4153
上一篇: 前端 —— JavaScript 基础篇 21 --- 倒计时 demo
下一篇: 前端 —— 原生js -- 省市级联菜单- 有效哦
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值