学习笔记-animate动画函数

更新时间:2023-07-28 05:25:21 阅读: 评论:0

学习笔记-animate动画函数
动画原理:当前的样式+变化量
获得当前的样式
印象普陀
1function getStyle(obj,attr) {
2if(obj.currentStyle) { //ie
3return obj.currentStyle[attr];
4        }el { //w3c
ComputedStyle(obj,null)[attr];
6        }
7    }
动画函数(⽆opacity和z-index)
1function animate(obj,json){ //要做动画的对象,⽬标样式
2        clearInterval(obj.timer); //清除定时器
3        obj.timer = tInterval(function(){ //开启定时器
4var flag = true; //定时器开关
5for(var key in json){  //遍历json
6var current = parInt(getStyle(obj,key)) || 0;  //获取当前的属性值
7var step = (json[key] - current) / 10;  //计算每个属性的变化量
8                step = step > 0 ? il(step) : Math.floor(step); //根据正负取整
9                obj.style[key] = current + step + "px"; //赋值
10if(current != json[key]){//只要其中有⼀个属性不等于⽬标值,就不应该停⽌定时器
11                    flag = fal;
12                }
13            }
14if(flag){  //  当flag为真时,停⽌定时器
15                clearInterval(obj.timer);
16            }
17        },30);
18    }
动画函数(添加回调函数、opacity和z-index)
1function animate(obj,json,fn){
糯米鸡2        clearInterval(obj.timer);
3        obj.timer = tInterval(function(){
4var flag = true;
5for(var key in json){
疙瘩菜
6var current = 0;
7if(key == "opacity"){ //如果⽬标属性中有透明度
8                    current = und(parInt(getStyle(obj,key)*100)) || 0;//获得的opacity属性值要先乘以100
9                }el{
10                    current = parInt(getStyle(obj,key));
11                }
12var step = (json[key] - current) / 10;  //计算每个属性值的变化量
13                step = step > 0 ? il(step) : Math.floor(step);
14if(key == "opacity"){//判断传⼊的json中有没有opacity
西游记后续15if("opacity" in obj.style){//判断浏览器是否⽀持opacity
情之缘
16                        obj.style.opacity = (current + step) / 100;//⾮ie
17                    }el{
18                        obj.style.filter = "alpha(opacity = "+(current + step)*10+")"; //ie ⽀持滤镜 filter : alpha(opacity = 50);
19                    }
20                }el if(key == "zIndex"){ //判断是否有zIndex鼠五行属什么
21                    obj.style.zIndex = json[key];//直接变成⽬标值
22                }
23el{
24                    obj.style[key] = current + step + "px";
25                }
26if(current != json[key]){//只要其中有⼀个属性不等于⽬标值,就不应该停⽌定时器老虎蛋糕图片
27                    flag = fal;
28                }
29            }
30if(flag){  //  当flag为真时,停⽌定时器
31                clearInterval(obj.timer);
32if(fn){  //判断是否存在回调函数,如果存在,定时器停⽌时,执⾏回调函数
33                    fn(); //执⾏回调函数
34                }
35            }
36        },30);
营销部是做什么的
37    }

本文发布于:2023-07-28 05:25:21,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1099551.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:属性   函数   标值   动画
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图