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

从理论到实践:使用Sigrity SystemSI完成DDR4信号完整性仿真全流程解析 本文详细解析了使用Sigrity SystemSI完成DDR4信号完整性仿真的全流程,从核心挑战到实战操作。文章深入探讨了DDR4信号完整性问题,介绍了SystemSI工具链的演进与分工,并提供了从前期准备到高级技巧的详细指南,帮助工程师有效解决DDR4设计中的信号完整性问题。 阅读详情

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

 

<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、将页面文档的默认的内外编剧清零时 

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

 

 

 

 

 

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

Windows MCP 安装教程:让 AI 代理与 Windows 系统无缝交互 通过以上步骤,你已经成功安装和配置了 Windows MCP 服务。现在你的 Cursor 编辑器可以通过 MCP 协议与 Windows 系统进行深度交互,AI 代理能够:启动和控制应用程序执行系统命令自动化 UI 操作获取系统状态信息这为 AI 辅助开发和工作流程自动化提供了强大的基础。如果你在使用过程中遇到任何问题,欢迎在评论区讨论或查看项目的官方文档。 阅读详情

相关推荐

华为使用MicroG安装并使用Google服务教程

鉴于众多华为手机用户因无法使用Google服务而感到不便,我经过多次摸索和测试,总结了一份简单易懂的教程,希望能够帮助到大家。无论是需要使用Google Play商店下载应用,还是需要使用Google服务进行工作和学习,本文将详细介绍如何在华为手机上安装并使用Google服务。二、前置条件软件要求:Aurora Store(替代Google Play商店)、MicroG Companion、MicroG Server(替代Google框架)

weixin_41926602的博客 3万+

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

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

Codefreyy 1368

电动车辆的动力总成控制

手把手教你学Simulink——电动车辆的动力总成控制在汽车工程领域,电动汽车(EV)的动力总成控制系统是确保车辆性能、效率和驾驶体验的关键。动力总成控制系统通常包括电机控制、电池管理系统(BMS)、能量回收系统等组件。通过使用Simulink,我们可以模拟和测试这些系统的运行情况,优化设计,并验证控制算法的有效性。

amy_mhd的博客 968

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

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

waterDjj的博客 2021

PlayReady Encrypt XAP 解密讨论

目前WP7市场上的绝大部分XAP都被MS进行了加密,经过分析,这个加密方式采用了AES方式进行了加密,本人经过对新的XAP格式(PRE)进行了分析,发现新的格式里,实际上是对之前PK(ZIP格式)的XAP进行了加密然后封装:   typedef struct {   DWORD HDR; // 0x07455250 : PRE & 0x7   DWORD a1; // always 0x1   D

u013729125的专栏 1510

PCB Layout工程师核心能力与实战进阶指南

PCB Layout是电子硬件从原理图到物理实现的关键环节,本质是将电路逻辑转化为受电磁场、热力学与制造工艺约束的三维空间结构。其设计质量直接决定信号完整性(SI)、电源完整性(PI)和电磁兼容性(EMC)等核心性能指标。随着高速接口(如PCIe Gen5、USB3.2)、高密度封装(BGA微间距、HDI)及车规/工业级可靠性要求提升,Layout已从‘连线’演进为多目标协同优化的系统工程。掌握Altium Designer等EDA工具、理解叠层设计与DFM规则、具备SI/PI仿真意识,并能贯通芯片Data

weixin_42589700的博客 87

Tween.js动画函数使用demo

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

weixin_50367873的博客 328

Qt Creator牵手DeepSeek,开启AI开发新征程

Qt Creator 是一款功能强大的跨平台集成开发环境(IDE),专为 Qt 应用程序开发量身定制。它支持在编程过程中使用 GitHub Copilot 等编码助手,能帮助开发者为桌面、移动端和嵌入式平台创建软件。在代码编辑方面,Qt Creator 具备代码补全、语法突出显示、重构等功能,内置文档也随手可得,极大提高了代码编写的效率和准确性。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 7189

threejs官方demo学习(1):animation

threejs官方demo学习(1):animation

weixin_41897680的博客 3122

【AI黑话日日新】什么是AI Infra?

是支撑AI模型开发、训练、推理、部署与规模化运营的,是连接底层算力与上层AI应用的“数字基建”。没有高效的AI Infra,大模型训练、推理与落地都无法高效实现。

专注:太空算力、AI infra、异构调度、大模型成本工程 1108

大模型角色提示词写得再严密,也能被绕过?我用攻击者思维把自己吓了一跳!

很多人以为提示词是“只要写清楚了,模型就能理解”,但实际上——模型并不具备严格的规则意识,它只是在预测下一句话。所以我们必须从“攻防”角度出发,设计更强的防护机制。我这次就是亲身踩坑,用红队思维模拟攻击,才意识到原来提示词注入这么容易中招。你如果也在做 AI 应用、角色系统、提示词驱动的功能,建议你也用类似方式测试一下,不然被绕了都不知道。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1028

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

歌谣的博客 356

基于opencv人脸识别实现课堂抬头率检测系统 完整代码 可直接运行 作为毕设

基于opencv人脸识别实现课堂抬头率检测系统 完整代码 可直接运行 作为毕设

机器学习深度学习业余选手 1146

JavaScript Tween算法及缓动效果javascript

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

chaoxidawang的专栏 2042

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

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

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

现在学习也不晚 2905

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

JavaScript Tween算法及缓动效果

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

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

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

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、付费专栏及课程。

余额充值