--------------------------------------------------------------
点此浏览示例文件
--------------------------------------------------------------
Javascript:
<script type="text/javascript"> <!-- // 说明:用 javascript 实现文本及背景的淡入淡出效果 // 整理:http://www.CodeBit.cn // 分离RGB颜色 0:R | 1:G | 2:B function parseRGB(color, type) { var start, len, result; len = (color.length == 4)?1:2; start = type * len + 1; result = color.substr(start, len); if(result.length == 1) result += result; return parseInt(result, 16); } // 页面元素ID,源色彩,渐变色彩,淡入淡出步数,是否背景颜色(默认文字颜色) function fade(id, colorSource, colorFade, fadeStep, background) { var element = document.getElementById(id); // 分解源色彩 var rSource = parseRGB(colorSource, 0); //红 R var bSource = parseRGB(colorSource, 1); //绿 G var gSource = parseRGB(colorSource, 2); //蓝 B // 分解渐变色彩 var rFade = parseRGB(colorFade, 0); var bFade = parseRGB(colorFade, 1); var gFade = parseRGB(colorFade, 2); // 步数统计 var step = 0; // 设置定时器 var fadeTimer = setInterval( function(){ var tmpStep = fadeStep - step; // 由于 floor() 计算不准确,当达到指定步数后直接赋值源色彩 if(step < fadeStep) { with(Math) { var rStep = floor((rSource - rFade) / tmpStep); var bStep = floor((bSource - bFade) / tmpStep); var gStep = floor((gSource - gFade) / tmpStep); } rFade += rStep; bFade += bStep; gFade += bStep; if(background) { element.style.backgroundColor = 'rgb('+rFade+','+bFade+','+gFade+')'; } else { element.style.color = 'rgb('+rFade+','+bFade+','+gFade+')'; } } else { if(background) { element.style.backgroundColor = colorSource; } else { element.style.color = colorSource; } // 清除定时器 clearInterval(fadeTimer); } step ++; }, 50 ); } //--> </script>
示例代码:
HTML:
<style type="text/css"> #test { background:#fff; border:1px solid #4B7705; color:#3BC209; text-align:center; width:550px; margin:0 auto; } </style> <div id="test"><h2>用javascript实现文本及背景的淡入淡出效果</h2></div> <div> <input type="button" value="背景淡入" onclick="fade('test','#3BC209','#fff',5,1)" /> <input type="button" value="文字淡入" onclick="fade('test','#fff','#3BC209',5);" /> <input type="button" value="文字淡出" onclick="fade('test','#3BC209','#fff',5);" /> <input type="button" value="背景淡出" onclick="fade('test','#fff','#3BC209',5,1)" /> </div>
本文介绍的效果是本站编辑在名为『 风微柳细 』的 Blog 上发现的(原文名为:《用javascript实现文本的淡入淡出效果》),编辑随后征询了原作者的意见,原作者爽快的允许了本站转载,但是由于原作者写的代码命名规则不够清晰,不便于新手学习和二次开发,因此,本站按照原作者的思路重写了代码,并加上了“背景”的淡入淡出效果,在此,本站感谢原作者对本站的支持。
如果您对原作者及其 blog 感兴趣,可以通过下面的链接访问:
http://blog.iyi.cn/hily/archives/2006/08/javascript_4.html


