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 相关文章推荐
深入document.write()与HTML4.01的非成对标签的详解
May 08 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
Jan 28 Javascript
禁用页面部分JavaScript不是全部而是部分
Sep 03 Javascript
JavaScript中的变量定义与储存介绍
Dec 31 Javascript
JavaScript——DOM操作——Window.document对象详解
Jul 14 Javascript
Bootstrap实现带动画过渡的弹出框
Aug 09 Javascript
Bootstrap源码解读导航(6)
Dec 23 Javascript
用JavaScript和jQuery实现瀑布流
Mar 19 Javascript
老生常谈JS中的继承及实现代码
Jul 06 Javascript
JS数组实现分类统计实例代码
Sep 30 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
Apr 11 Javascript
antd-DatePicker组件获取时间值,及相关设置方式
Oct 27 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
多重?l件?合查?(二)
2006/10/09 PHP
深入php函数file_get_contents超时处理的方法详解
2013/06/03 PHP
PHP设计模式之适配器模式代码实例
2015/05/11 PHP
解决laravel 表单提交-POST 异常的问题
2019/10/15 PHP
用javascript实现改变TEXTAREA滚动条和按钮的颜色,以及怎样让滚动条变得扁平
2007/04/20 Javascript
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
2012/01/15 Javascript
jQuery操作 input type=checkbox的实现代码
2012/06/14 Javascript
NodeJS学习笔记之MongoDB模块
2015/01/13 NodeJs
EasyUI实现第二层弹出框的方法
2015/03/01 Javascript
jquery实现简单手风琴菜单效果实例
2015/06/13 Javascript
jQuery实现图片走马灯效果的原理分析
2016/01/16 Javascript
javascript实现随机显示星星特效
2016/01/28 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
2016/11/29 Javascript
JavaScript判断浏览器和hack滚动条的写法
2017/07/23 Javascript
利用three.js画一个3D立体的正方体示例代码
2017/11/19 Javascript
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
基于游标的分页接口实现代码示例
2018/11/12 Javascript
react同构实践之实现自己的同构模板
2019/03/13 Javascript
JavaScript Math对象和调试程序的方法分析
2019/05/13 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
2020/12/04 Javascript
javascript实现滚轮轮播图片
2020/12/13 Javascript
跟老齐学Python之Import 模块
2014/10/13 Python
讲解Python中for循环下的索引变量的作用域
2015/04/15 Python
在Python中marshal对象序列化的相关知识
2015/07/01 Python
python的concat等多种用法详解
2018/11/28 Python
Python3 chardet模块查看编码格式的例子
2019/08/14 Python
浅谈keras 模型用于预测时的注意事项
2020/06/27 Python
美国汽车轮胎和轮毂销售网站:Tire Rack
2018/01/11 全球购物
美国摩托车头盔、零件、齿轮及配件商店:Cycle Gear
2019/06/12 全球购物
澳大利亚床上用品、浴巾和家居用品购物网站:Bambury
2020/04/16 全球购物
日语系毕业生推荐信
2013/11/11 职场文书
群众路线四风问题整改措施
2014/09/27 职场文书
无刑事犯罪记录证明范本
2014/09/29 职场文书
党的群众路线教育实践活动对照检查剖析材料
2014/10/09 职场文书
2015年高考寄语或鼓励的话
2015/03/23 职场文书
2015年公司国庆放假通知
2015/07/30 职场文书