运动---第七课时
弹性运动----弹性运动不同于匀速运动,元素运动的速度先快后慢,后者是先慢后快,而且在运动的过程中有一个权重(类似于重力加速度),看上去就像真实的自由落体运动一样。下面看一下加速运动和减速运动:加速运动顾名思义就是速度不断增加,具体到这里就是iSpeed++,每一次都加1,实现累加。累减的过程刚好相反,假设变量iSpeed的初始值为20,然后速度递减iSpeed--,也就是累减。加速运动和减速运动的结合体就构成了弹性运动。
加速运动:
减速运动:当元素的速度减到为0时,速度继续减小,然后变为负值,会往反方向运动。这个还蛮有意思的。
简单的弹性运动:当点击按钮的时候,元素左右摆动,但是因为没有加权,所以运动起来弹性似乎没有。速度iSpeed++的写法有很多种,iSpeed++其实就是iSpeed=ispeed+1;为了改进速度的加权,所以把iSpeed++改为iSpeed+=(300-oDiv.offsetLeft)/50;让速度有一个变化的趋势
弹性+摩擦:弹性就是改变元素的Left值,摩擦就是让元素的速度越来越慢,直到停止。当iSpeed累乘以一个小于1的数的时候,速度就开始越来越慢了,知道元素停止运动。把累乘和累加结合起来就实现了元素的弹性运动,并且在需要的时候停止运动。
滑动的菜单----在结构上多设置了一个li,用来隐藏和显示红色背景,这个li只起到这么一个作用。把它定位到其他li的下面,形成下划线的效果。oBg是li的最后一个,所以获取他就要在长度上减1;同时在做循环的时候,最后一个li不需要添加事件,所以同样是length-1;startMove函数改变oBg的offsetLeft来实现下划线的不同位置。为了避免样式不支持小数点,所以把left值赋值给一个变量,因为变量可以接受小数点,所以就可以避免小数点带来的问题。清楚定时器的条件要满足两个:一是速度在-1到1之间的时候,距离在-1到1的时候。因为倒数第二个li会存在一个像素的误差,所以强制性的设置它的left为目标值,即obj.style.left=iTarget+'px'。这个例子有点伤脑筋,慢慢斟酌:)
__EOF__

本文链接:https://www.cnblogs.com/paxster/archive/2013/06/12/3133333.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述