首页
网页特效库
网页特效库
导航菜单
按钮表单
背景特效
时间日期
图片特效
鼠标特效
文本操作
窗口页面
状态栏类
警告对话
综合应用
游戏娱乐
首页
>
特效
>
文本操作
> 正文
一段文字到处跑背景还变色
2010-08-31 文本操作 179℃
<SCRIPT> function morph(e,wait,steps,style,done){ if(e.morphing){ return; } e.morphing = true; e.step = 0; e.done = steps; e.wait = wait; e.morphDone = done; // initialize the given element for the process // save some temporary variables within it var attribs = _eat_attrib(style); if(attribs["top"] != null){ e.deltaTop = Math.round(Number((attribs["top"] - e.style.posTop) / steps)); e.finalTop = attribs["top"]; }else{ e.deltaTop = null; e.finalTop = e.style.posTop; } if(attribs["left"] != null){ e.deltaLeft = Math.round(Number((attribs["left"] - e.style.posLeft) / steps)); e.finalLeft = attribs["left"]; }else{ e.deltaLeft = null; e.finalLeft = e.style.posLeft; } if(attribs["height"] != null){ e.deltaHeight = Math.round(Number((attribs["height"] - e.style.posHeight) / steps)); e.finalHeight = attribs["height"]; }else{ e.deltaHeight = null; e.finalHeight = e.style.posHeight; } if(attribs["width"] != null){ e.deltaWidth = Math.round(Number((attribs["width"] - e.style.posWidth) / steps)); e.finalWidth = attribs["width"]; }else{ e.deltaWidth = null; e.finalWidth = e.style.posWidth; } // group all of the coloring elements together e.colors = new Array(); for(attrib in attribs){ // check each one individually to kludge // if we need to use a "safe" name for the css attribute if(attrib == "background"){ e.colors[e.colors.length] = new Array(); e.colors[e.colors.length - 1].name = attrib; e.colors[e.colors.length - 1].safename = attrib; } if(attrib == "color"){ e.colors[e.colors.length] = new Array(); e.colors[e.colors.length - 1].name = attrib; e.colors[e.colors.length - 1].safename = attrib; } if(attrib == "border-color"){ e.colors[e.colors.length] = new Array(); e.colors[e.colors.length - 1].name = attrib; e.colors[e.colors.length - 1].safename = "borderColor"; } } for(var i=0;i<e.colors.length;i++){ var rgb = _eat_rgb(attribs[e.colors[i].name]); var prergb = _eat_rgb(e.style[e.colors[i].safename]); e.colors[i].delta = _eat_rgb(attribs[e.colors[i].name]); e.colors[i].finish = _eat_rgb(attribs[e.colors[i].name]); e.colors[i].delta["red"] = Math.round(Number((rgb["red"] - prergb["red"]) / steps)); e.colors[i].delta["green"] = Math.round(Number((rgb["green"] - prergb["green"]) / steps)); e.colors[i].delta["blue"] = Math.round(Number((rgb["blue"] - prergb["blue"]) / steps)); } // fire the first morphing step setTimeout("_morphing(document.all." + e.id + ")", wait); } ///////////////////////////// ///////////////////////////// //// private function that does the work of morphing the element function _morphing(e){ e.step++; if(e.deltaTop!=null){ e.style.posTop += e.deltaTop; } if(e.deltaLeft!=null){ e.style.posLeft += e.deltaLeft; } if(e.deltaHeight!=null){ e.style.posHeight += e.deltaHeight; } if(e.deltaWidth!=null){ e.style.posWidth += e.deltaWidth; } for(var i=0;i<e.colors.length;i++){ var rgb = _eat_rgb(e.style[e.colors[i].safename]); e.style[e.colors[i].safename] = "rgb(" + (e.colors[i].delta["red"] + rgb["red"]) + "," + (e.colors[i].delta["green"] + rgb["green"]) + "," + (e.colors[i].delta["blue"] + rgb["blue"]) + ")"; } // do special things when we are done if(e.step == e.done){ if(e.deltaTop != null) e.style.posTop = e.finalTop; if(e.deltaLeft != null) e.style.posLeft = e.finalLeft; if(e.deltaWidth != null) e.style.posWidth = e.finalWidth; if(e.deltaHeight != null) e.style.posHeight = e.finalHeight; for(var i=0;i<e.colors.length;i++){ e.style[e.colors[i].safename] = "rgb(" + (e.colors[i].finish["red"] + rgb["red"]) + "," + (e.colors[i].finish["green"] + rgb["green"]) + "," + (e.colors[i].finish["blue"] + rgb["blue"]) + ")"; } e.morphing = false; eval(e.morphDone); }else{ setTimeout("_morphing(document.all." + e.id + ")", e.wait); } return; } ////////////////// //// util for element attribute parsing //// returns an array of all of the keys = values function _eat_attrib(str){ var chunks = new Array(); var all = new Array(); chunks=str.split(";"); for(var i=0;i<chunks.length;i++){ var tmpA = new Array(); tmpA=chunks[i].split(":"); all[tmpA[0]]=tmpA[1]; } return all; } //////////////////// ////////////////// //// util for style rgb(#,#,#) parsing //// returns an array of red/green/blue = number function _eat_rgb(str){ var all = new Array(); var a = str.indexOf("("); var b = str.indexOf(")"); str = str.substring(a + 1, b); var tmpA = str.split(","); all["red"]=Number(tmpA[0]); all["green"]=Number(tmpA[1]); all["blue"]=Number(tmpA[2]); return all; } //////////////////// </SCRIPT> <p><span id="test" style="border-bottom: rgb(0,0,0) 5px solid; position: absolute; border-left: rgb(0,0,0) 5px solid; width: 400px; background: rgb(0,0,255); height: 400px; color: rgb(255,255,255); overflow: hidden; border-top: rgb(0,0,0) 5px solid; top: 0px; border-right: rgb(0,0,0) 5px solid; left: 0px">欢迎光临 <b>javascript</b> 资料库网页特效站,请多提意见!! </span><SCRIPT> function rander(){ var top = Math.round(Math.random() * 400); var left = Math.round(Math.random() * 600); var width = Math.round(Math.random() * 200); var height = Math.round(Math.random() * 200); var r = Math.round(Math.random() * 255); var g = Math.round(Math.random() * 255); var b = Math.round(Math.random() * 255); var background = "rgb(" + r + "," + g + "," + b + ")"; var r = Math.round(Math.random() * 255); var g = Math.round(Math.random() * 255); var b = Math.round(Math.random() * 255); var borderColor = "rgb(" + r + "," + g + "," + b + ")"; var r = Math.round(Math.random() * 255); var g = Math.round(Math.random() * 255); var b = Math.round(Math.random() * 255); var color = "rgb(" + r + "," + g + "," + b + ")"; morph(document.all.test,30,20,"top:" + top + ";left:" + left + ";width:" + width + ";height:" + height + ";background:" + background + ";border-color:" + borderColor + ";color:" + color + ";","rander();"); } rander(); </SCRIPT></p>
相关特效代码
无相关信息
热门特效代码
输入框的文字闪烁变色引人注意
纯CSS内页内容切换选项卡
鼠标经过链接显示注释旋转风火轮
指向自动选择的输入框
放大镜链接效果
带注释的链接特效
文字闪烁效果
带注释的链接特效代码
点击文字显示隐藏链接
WEB2.0圆形边框css做法
推荐特效代码
字符连续消隐
文字变色逐个出现
段落文字百叶窗效果输出
点击文字显示隐藏链接
文字由小变大由大变小(动态变化
文字来回上下移动或跳动