js--链式缓冲运动框架

这些框架都是鄙人自学的网上视频,至于是哪家,想必大家都知道的,当然不纠结这个,最主要的是学习的过程和结果,甚至于你理解,掌握了没有

网上有很多的开源框架,很佩服他们的思路和写法,或许这就是代码之美吧

我一个小小的前台,做界面的,现在也要去学习设计思路了,毕竟你拿工资的多少和你掌握技能的多少、深度是成正比的

当然更要相信  

努力必有回报,坚持一定成功

 

以下是更新的学习运动框架的进度和代码

 

 

更新时间:2014-12-11

js框架---缓冲链式运动--已经掌握

 

 

 1     //运动框架
 2     //author:Nomand
 3     //2014-12-11
 4     //兼容各中内核浏览器
 5     //解决了webkit核心下的浏览器小数的问题
 6     function getStyle(obj,attr){
 7         return obj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj,false)[attr];
 8     }
 9     function startMove(obj,attr,iTarget,fn){
10         clearInterval(obj.time);
11         var iCur = 0;
12         obj.time=setInterval(function() {
13             attr == ‘opacity‘ ? iCur = parseInt(parseFloat(getStyle(obj, attr)) * 100) : iCur = parseInt(getStyle(obj, attr));
14             var speed = (iTarget - iCur) / 8;
15             speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
16             if (iCur == iTarget) {
17                 clearInterval(obj.time);
18                 if(fn) {
19                     fn();
20                 }
21             } else {if(obj.style.opacity == (iCur + speed) / 100){
22                         iCur +=1;
23                     }
24                 //这里是解决在webkit下小数问题,当浏览器认为他到达的时候事实上并没有到达,这里直接给他加上1
25                 if(obj.style.opacity == (iCur + speed) / 100){
26                     iCur +=1;
27                 }
28                 attr == ‘opacity‘ ? obj.style.opacity = (iCur + speed) / 100 : obj.style[attr] = iCur + speed + "px";
29             }
30         },20)
31     }

 js框架--完美运动(尚未掌握),需要仔细学习

 1 function startMove(obj, json, fnEnd)
 2 {
 3     if(obj.timer)
 4     {
 5         clearInterval(obj.timer);
 6     }
 7     obj.timer=setInterval(function (){
 8         doMove(obj, json, fnEnd);
 9     }, 30);
10     
11     var oDate=new Date();
12     
13     if(oDate.getTime()-obj.lastMove>30)
14     {
15         doMove(obj, json, fnEnd);
16     }
17 }
18 
19 function getStyle(obj, attr)
20 {
21     if(obj.currentStyle)
22     {
23         return obj.currentStyle[attr];
24     }
25     else
26     {
27         return getComputedStyle(obj, false)[attr];
28     }
29 }
30 
31 function doMove(obj, json, fnEnd)
32 {
33     var iCur=0;
34     var attr=‘‘;
35     var bStop=true;    //假设运动已经该停止了
36     
37     for(attr in json)
38     {
39         if(attr==‘opacity‘)
40         {
41             iCur=parseInt(100*parseFloat(getStyle(obj, ‘opacity‘)));
42         }
43         else
44         {
45             iCur=parseInt(getStyle(obj, attr));
46         }
47         
48         if(isNaN(iCur))
49         {
50             iCur=0;
51         }
52         
53         var iSpeed=(json[attr]-iCur)/8;
54         iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);
55         
56         if(parseInt(json[attr])!=iCur)
57         {
58             bStop=false;
59         }
60         
61         if(attr==‘opacity‘)
62         {
63             obj.style.filter="alpha(opacity:"+(iCur+iSpeed)+")";
64             obj.style.opacity=(iCur+iSpeed)/100;
65         }
66         else
67         {
68             obj.style[attr]=iCur+iSpeed+‘px‘;
69         }
70     }
71     
72     if(bStop)
73     {
74         clearInterval(obj.timer);
75         obj.timer=null;
76         
77         if(fnEnd)
78         {
79             fnEnd();
80         }
81     }
82     
83     obj.lastMove=(new Date()).getTime();
84 }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。