-
Math.round();四舍五入查看全部
-
计算机不能严格精确的存储小数 如0.07*100,不能得到7,而是7.00000000000001查看全部
-
parseInt(getStyle(obj,'width'))查看全部
-
function getStyle(obj,attr) { if(obj.currentStyle){ return obj.currentStyle; } else { return getComputedStyle(obj,'false')[attr]; } } 定义getStyle函数,兼容IE和其他浏览器查看全部
-
获取样式IE和其他浏览器查看全部
-
多物体运动透明度渐变时,不能公用一个透明度参数查看全部
-
多物体动画不能共用一个定时器。查看全部
-
缓冲运动,如果速度的值可能出现小数点,记得要取整: Math.floor(); 向下取整 Math.ceil(); 向上取整查看全部
-
透明度渐变:定义一个变量的值如:alpha来与目标透明度值进行比较。查看全部
-
filter:alpha(opacity:30); /*IE低级浏览器设置透明度*/ opacity: 0.3; /*其他浏览器设置透明度*/查看全部
-
当前目标li运动,用到this,表示当前,使用函数参数查看全部
-
记住了查看全部
-
速度小数点,需要取整,不然容易出错查看全部
-
function startMove(obj,json,fn){ clearInterval(obj.timer); obj.timer=setInterval(function(){ var flag=true; //标志所有运动是否到达目标值 for(var attr in json){ var curr=0; //获取当前的值,设置为0下面进行赋值 //判断是否为透明度 if(attr=='opacity'){ curr=Math.round(parseFloat(getStyle(obj,attr))*100); //对透明度处理 }else{ curr=parseInt(getStyle(obj,attr)); //对普通的宽高处理 } //移动速度处理 var speed=0; speed=(json[attr]-curr)/8; //json[attr]为属性值即目标值 speed=speed>0?Math.ceil(speed):Math.floor(speed); //取整数,将速度取整从而达到目标值 //检测停止 if(curr!= json[attr]){ flag=false;//检测为false则继续下面的操作 } if (attr=='opacity') { obj.style.filter='alpha(opacity:'+(curr+speed)+’)’;//IE浏览器 obj.style.opacity=(curr+speed)/100;//firefox浏览器 }else{ obj.style[attr]=curr+speed+'px'; } } if(flag){ //检测为true则继续下面的操作 clearInterval(obj.timer); if(fn){ //检测是否有回调函数,有就执行 fn(); } } },30); } //取样式 function getStyle(obj,attr){ if(obj.currentStyle){ return obj.currentStyle[attr]; //IE取样式 }else{ return getComputedStyle(obj,false)[attr]; } }查看全部
-
运动框架大概的实现思路查看全部
举报
0/150
提交
取消