JS 运动基础
来源:互联网 发布:粉尘防护口罩知乎 编辑:程序博客网 时间:2024/05/21 06:26
1、运动基础
运动中的bug:
a、不会停止的问题:可以通过写一个给定值判断,到达给定位置,清楚定时器。
b、速度取某些值会无法停止:这个是速度给定值后,大于等于给定距离,则清除定时器。
c、到达位置后点击还会运动:函数还要执行一次,改为if...else解决,即把运动和停止隔开。
d、重复点击速度加快:在定时器外清除定时器,初始化,即运动开始时,关闭已有定时器。
比较完整的运动代码如下:
var oDiv1 = document.getElementById('div1');var timer;function startMove() { clearInterval(timer) timer= setInterval(function(){ var speed = 1; if(oDiv1.offsetLeft >= 300){ clearInterval(timer) }else{ oDiv1.style.left = oDiv1.offsetLeft+speed+"px" } },30) }
2、分享到侧边栏效果
速度定义为变量,判断左侧和目标值之间的大小然后对变量赋值,
if(oDiv1.offsetLeft >iTarget){ speed = -10 }else { speed = 10 }
3、淡入淡出图片的效果,
opacity的兼容性写法css为:
filter: alpha(opacity:30); opacity: 0.3;
图片没有offsetOpacity,加上需要处理兼容性,解决办法为声明变量alpha,通过判断alpha和目标值得关系来判断运动的正反方向,最后将alpha的值拼接进去。
var speed= 0; if (alpha <iTarget){ speed = 0.1 }else { speed = -0.1 } if(alpha == iTarget){ clearInterval(timer) }else { alpha +=speed oDiv1.style.filter = "alpha(opacity:'+alpha+')" oDiv1.style.opacity = alpha/100; }
4、缓冲运动
a、距离越大,速度越大,距离越小,速度越小,
var speed = (300-oDiv1.offsetLeft)/10
Math.ceil(数字)向上取整,例如Math.ceil(3.5)得出的结果是4;
Math.floor(数字)向下取整,例如Math.floor(3.5)得出的结果是3;
speed=speed>0?Math.ceil(speed):Math.floor(speed)
b、缓冲菜单
阅读全文
0 0
- js运动基础
- JS运动基础框架
- js基础运动样式
- JS学习-基础运动
- JS 运动基础
- js运动基础_完善版
- JS基础-定时器+运动
- js运动-链式运动
- js运动-同时运动
- js运动-弹性运动
- js运动-碰撞运动
- js运动-运动缓冲
- 运动基础
- 智能社JavaScript学习笔记——JS运动基础
- JS 运动基础 提示栏拉出与隐藏
- JS基础之运动框架,能实现常用动画效果
- js缓冲运动、弹性运动、碰撞运动
- js运动-多物体运动
- 关于傅里叶
- 雾霾入侵机房会产生哪些危害?该如何防护?
- 欢迎使用CSDN-markdown编辑器
- 基于RK3399的USB转串口驱动模块的编译
- 笔记41 | Android加载器Adapter的几个练习
- JS 运动基础
- Android studio 代码混淆及打包apk
- Unity UGUI替换Image图片的三种方式
- F7+vue 物理返回键监听使用
- Android apk反编译
- JVM虚拟机
- 2017年第一个Python程序
- ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十二节--小结,Bootstrap Table之角色管理
- php form表单提交 然后上传图片到七牛