颜色闪烁blinkColor

本来想写一个颜色渐变的的函数的,谁知道写出来的是闪烁的效果,哎,有点小伤心~~

不说了,直接上代码吧

 1 /*iTarget是十六进制的形参*/
 2     function blinkColor(obj,iTarget){
 3         clearInterval(obj.timer)
 4         var iSpeed,iCur;
 5         
 6         iCur = iIntColor;
 7         iTarget = hexToDem(iTarget);
 8         iSpeed = Math.floor((iTarget - iCur)/20);
 9         obj.timer = setInterval(function(){
10                 if(iCur == iTarget){
11                     clearInterval(obj.timer)
12                 }else{
13                     iCur += iSpeed;
14                     obj.style.color = "#" + rgbToHex(iCur);
15                 }
16             },30)
17         
18     };
19     
20     
21     //封装hexToDem,将16进制转换为10进制
22     function hexToDem(hex){
23         return parseInt("0x"+hex);
24     };
25     
26     
27     //封装rgbToHex,将获取的颜色转换为十六进制
28     function rgbToHex(s){
29         var arr = [],sResult = "";
30         if(typeof(s) === "string" && s.substr(0,1) === 'r')  //如果颜色模式是RGB模式,则把RGB转换为16进制 rgb(255,255,255)
31         {
32             arr = s.split(",");
33             arr[0] = parseInt(arr[0].substr(4));//第0位要特殊处理,rgb(255截取第4位以后的,即255
34             
35             for(var i = 0 ;i < arr.length; i++){
36                 sResult += parseInt(arr[i]).toString(16);
37             };
38             
39             return sResult;
40         }else
41         {
42             return s.toString(16);
43             
44         };
45     };
46     
47     
48     
49     //封装getStyle,获取真正的样式
50     function getStyle(obj,attr){
51         if(obj.currentStyle){
52             return obj.currentStyle[attr];
53         }else{
54             return getComputedStyle(obj,false)[attr];
55         };
56     };
57     
原文地址:https://www.cnblogs.com/fyima/p/3710860.html