今天班聚回来特别困。。睡了一觉之后发现了个有趣的demo。。因为是英文。。又迷迷糊糊。。所以没有看懂原理。。先拿来玩玩,有空了再扒扒原理。
23333,,蜜汁摸鱼。效果如下:
核心代码就这一段:
<span style="font-size:14px;">function getRainbow(width, center, str){
if(!width) width = 127;
if(!center) center = 128;
if(!str) str = "I love you baby, and if it quite all right.I need you baby, to warm the lonely night.";
var fre = 0.3;
var p = [0,2,4];
for(var i = 0;i<str.length;i++)
{
rgb[0] = Math.round(Math.sin(fre*i + p[0])*width) + center;
rgb[1] = Math.round(Math.sin(fre*i + p[1])*width) + center;
rgb[2] = Math.round(Math.sin(fre*i + p[2])*width) + center;
createDiv(rgb[0],rgb[1],rgb[2],str[i]);
}
}</span>
createDiv是dom操作,插入font标签来一个一个显示字母的。container是字符所在的元素:
<span style="font-size:14px;">function createDiv(a,b,c,d){
var t = document.createElement("font");
t.className = "ele";
t.innerHTML = d;
t.style.cssText = "color:rgb("+a+","+b+","+c+");";
container.appendChild(t);
}</span>
貌似是因为颜色的灰度变化和sin值变化有关,所以可以根据sin值来产生彩虹色。= =。
原文地址:http://krazydad.com/tutorials/makecolors.php
*************************************************************************************************************************
今天摸了下色块的移动。。本来以为要自己写的。。但是没有什么想法。。。看了源码发现用了jquery-ui插件。。囧。。。这么久了居然用过的插件和库屈指可数。。。因为不喜欢出错了不知道错哪里。。或者说操作的细节自己不知道。。。0 0
好羞愧。。但是不知道怎么看源码才好。。想知道是怎么做到的。。
demo参见:点击打开链接