码迷,mamicode.com
首页 > 其他好文 > 详细

[记录]使用setTimeout实现不同时间进行切换文本的颜色

时间:2016-03-11 20:21:06      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:

开始使用的是setinterval(),但是setinterval()的time是固定的,假如我想改变time,就需要每次clearInterval()一次。

如: setInterval(function(),time) change time on runtime

我翻译一下答案:

你需要清除interval()在下一行,所以第一个setinterval()不能工作,替换为正确的清除方式:

1 timer = setInterval(come, 0);
2 clearInterval(timer);
3 timer = setInterval(come, 10000);

理所当然,如gdoron说的,设置一个interval为空不是真的有效,并不是一个好的想法,使用setTimeout替换,或者如果没有延时的需要,就直接运行这个方法

1 come();
2 clearInterval(timer);
3 timer = setInterval(come, 10000);

在google搜索的结果同一个画面

看到:Changing the interval of SetInterval while it‘s running ,而答案我看不懂,也理解不了,但是这里有提到setTimeout()的时间是不一样的,所以,我可以使用setTimeout()进行互相调用的方式,实现与setInterval()差不多的效果。

Demo:

还有rgb转hex,这是因为jQuery css(‘color‘)返回的是rgb,而我使用的是hex十六进制,故参考: How to get hex color value rather than RGB value?的正确答案:

 1 var hexDigits = new Array
 2         ("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
 3 
 4 //Function to convert hex format to a rgb color
 5 function rgb2hex(rgb) {
 6  rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
 7  return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
 8 }
 9 
10 function hex(x) {
11   return isNaN(x) ? "00" : hexDigits[(x - x % 16) / 16] + hexDigits[x % 16];
12  }

我要实现的效果,和demo差不多,因为我只有三个div是来回切换的,所以我把互相调用的方法写死了。

参考:Pass correct “this” context to setTimeout callback?  解决了在setTimeout()中使用"this"关键字来进行调用其它方法的问题。

这里都是复制粘贴而来的,技术分享

[记录]使用setTimeout实现不同时间进行切换文本的颜色

标签:

原文地址:http://www.cnblogs.com/fsong/p/5266824.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!