JS实现的颜色实时渐变效果完整实例


Posted in Javascript onMarch 25, 2016

本文实例讲述了JS实现的颜色实时渐变效果。分享给大家供大家参考,具体如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>无标题页</title>
</head>
<body>
<div id="div1" style="font-size:36px;">我的闪烁文字 abc123</div>
<span id="span1"></span>
<script type="text/javascript">
var begin = getRGB('#33FFAA');
var end = getRGB('#FF0000');
var curColor = getRGB('#33FFAA');
var bo = true;
var rate = getRate(begin, end);
function blink()
{
 window.setInterval(function(){
  curColor.r = getCur(begin.r, end.r, curColor.r, bo, rate.r);
  curColor.g = getCur(begin.g, end.g, curColor.g, bo, rate.g);
  curColor.b = getCur(begin.b, end.b, curColor.b, bo, rate.b);
  document.getElementById('div1').style.color = getColor(curColor);
  document.getElementById('span1').innerHTML = getColor(curColor);
  if(curColor.r == begin.r && curColor.g == begin.g && curColor.b == begin.b)
  {
   bo = true;
  }
  if(curColor.r == end.r && curColor.g == end.g && curColor.b == end.b)
  {
   bo = false;
  }
 } , 100);
}
function getCur(beginValue, endValue, curValue, bo, rateValue)
{
 if(beginValue == endValue)
 {
  return beginValue;
 }
 rateValue = beginValue < endValue ? rateValue : -rateValue;
 curValue += bo ? rateValue : -rateValue;
 if(curValue < Math.min(beginValue, endValue))
 {
  curValue = Math.min(beginValue, endValue);
 }
 if(curValue > Math.max(beginValue, endValue))
 {
  curValue = Math.max(beginValue, endValue);
 }
 return curValue;
}
function getRate(b, e)
{
 var obj = new Object();
 obj.r = Math.abs(b.r - e.r) / 5;
 obj.g = Math.abs(b.g - e.g) / 5;
 obj.b = Math.abs(b.b - e.b) / 5;
 return obj;
}
function getRGB(color)
{
 var obj = new Object();
 obj.r = parseInt(color.substr(1,2), 16);
 obj.g = parseInt(color.substr(3,2), 16);
 obj.b = parseInt(color.substr(5,2), 16);
 return obj;
}
function getColor(obj)
{
 obj.r = Math.round(obj.r);
 obj.g = Math.round(obj.g);
 obj.b = Math.round(obj.b);
 var color = '#';
 color += (obj.r < 16 ? '0':'') + obj.r.toString(16);
 color += (obj.g < 16 ? '0':'') + obj.g.toString(16);
 color += (obj.b < 16 ? '0':'') + obj.b.toString(16);
 return color;
}
blink();
</script>
</body>
</html>
Javascript 相关文章推荐
JS嵌套函数调用上下文的问题解决
Mar 26 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
Jul 02 Javascript
jQuery实现按键盘方向键翻页特效
Mar 18 Javascript
学习JavaScript设计模式之责任链模式
Jan 18 Javascript
Bootstrap嵌入jqGrid,使你的table牛逼起来
May 05 Javascript
jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
Nov 16 Javascript
JS实现超简单的汉字转拼音功能示例
Dec 22 Javascript
Vue.js进行查询操作的实例详解
Aug 25 Javascript
Js中将Long转换成日期格式的实现方法
Jun 05 Javascript
sortable+element 实现表格行拖拽的方法示例
Jun 07 Javascript
原生JS生成指定位数的验证码
Oct 28 Javascript
如何利用vue实现波谱拟合详解
Nov 05 Javascript
JavaScript学习笔记之ES6数组方法
Mar 25 #Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
Mar 25 #Javascript
JS实现响应鼠标点击动画渐变弹出层效果代码
Mar 25 #Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
Mar 25 #Javascript
JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)
Mar 25 #Javascript
详解Javascript继承的实现
Mar 25 #Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
Mar 25 #Javascript
You might like
PHP的面试题集
2006/11/19 PHP
5种PHP创建数组的实例代码分享
2014/01/17 PHP
php使用str_replace实现输入框回车替换br的方法
2014/11/24 PHP
php循环table实现一行两列显示的方法
2015/06/04 PHP
php根据用户语言跳转相应网页
2015/11/04 PHP
Zend Framework实现多服务器共享SESSION数据的方法
2016/03/22 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
基于jquery的商品展示放大镜
2010/08/07 Javascript
解析瀑布流布局:JS+绝对定位的实现
2013/05/08 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
使用js判断当前时区TimeZone是否是夏令时
2014/02/23 Javascript
jQuery提交多个表单的小技巧
2014/07/27 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
2015/03/04 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
JavaScript中的原型prototype属性使用详解
2015/06/05 Javascript
jQuery的事件委托实例分析
2015/07/15 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
2016/05/03 Javascript
JSON 数据详解及实例代码分析
2017/01/20 Javascript
vue scroller返回页面记住滚动位置的实例代码
2018/01/29 Javascript
用Axios Element实现全局的请求loading的方法
2018/03/15 Javascript
使用vue-infinite-scroll实现无限滚动效果
2018/06/22 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
2018/08/08 Javascript
[00:32]2018DOTA2亚洲邀请赛Mineski出场
2018/04/04 DOTA
[00:19]CN DOTA NEVER DIE!VG夺冠rOtK接受采访
2019/12/23 DOTA
python使用代理ip访问网站的实例
2018/05/07 Python
基于Tensorflow使用CPU而不用GPU问题的解决
2020/02/07 Python
金智子午JAVA面试题
2015/09/04 面试题
高中自我鉴定
2013/12/20 职场文书
交通事故私了协议书
2014/04/16 职场文书
美食节策划方案
2014/05/26 职场文书
廉政教育的心得体会
2014/09/01 职场文书
关于运动会的广播稿(10篇)
2014/09/12 职场文书
2015秋季小学开学寄语
2015/05/27 职场文书
幸福来敲门观后感
2015/06/04 职场文书
团拜会主持词
2015/07/04 职场文书
java后台调用接口及处理跨域问题的解决
2022/03/24 Java/Android