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 相关文章推荐
javascript学习笔记(十八) 获得页面中的元素代码
Jun 20 Javascript
JS随即打乱数组实现代码
Dec 03 Javascript
Three.js源码阅读笔记(物体是如何组织的)
Dec 27 Javascript
jquery实现弹出层遮罩效果的简单实例
Mar 03 Javascript
js实现select二级联动下拉菜单
Apr 17 Javascript
整理关于Bootstrap导航的慕课笔记
Mar 29 Javascript
Vue2.0设置全局样式(less/sass和css)
Nov 18 Javascript
JavaScript中构造函数与原型链之间的关系详解
Feb 25 Javascript
JS实现拼图游戏
Jan 29 Javascript
基于JQuery实现页面定时弹出广告
May 08 jQuery
微信h5静默和非静默授权获取用户openId的方法和步骤
Jun 08 Javascript
关于vue 项目中浏览器跨域的配置问题
Nov 10 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仿博客园 个人博客(1) 数据库与界面设计
2013/07/05 PHP
php 伪静态之IIS篇
2014/06/02 PHP
PHP中unset,array_splice删除数组中元素的区别
2014/07/28 PHP
PHP访问Google Search API的方法
2015/03/05 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
2017/02/15 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
ThinkPHP5+Layui实现图片上传加预览功能
2018/08/17 PHP
Laravel框架Request、Response及Session操作示例
2019/05/06 PHP
JS处理VBArray的函数使用说明
2008/05/11 Javascript
javascript 遍历验证所有文本框的值
2009/08/27 Javascript
css值转换成数值请抛弃parseInt
2011/10/24 Javascript
在myeclipse中如何加入jquery代码提示功能
2014/06/03 Javascript
Node.js实现批量去除BOM文件头
2014/12/20 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
2015/12/25 Javascript
js实现滑动到页面底部自动加载更多功能
2017/02/15 Javascript
angular中实现控制器之间传递参数的方式
2017/04/24 Javascript
Webpack path与publicPath的区别详解
2018/05/03 Javascript
Nodejs中的require函数的具体使用方法
2019/04/02 NodeJs
JS数据类型分类及常用判断方法
2020/11/19 Javascript
用Python写的图片蜘蛛人代码
2012/08/27 Python
Python实现的简单万年历例子分享
2014/04/25 Python
Python中的anydbm模版和shelve模版使用指南
2015/07/09 Python
python检查URL是否正常访问的小技巧
2017/02/25 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
在PyCharm导航区中打开多个Project的关闭方法
2019/01/17 Python
详解django使用include无法跳转的解决方法
2020/03/19 Python
如何向scrapy中的spider传递参数的几种方法
2020/11/18 Python
NICKIS.com荷兰:设计师儿童时装
2020/01/08 全球购物
亿企通软件测试面试题
2012/04/10 面试题
车贷收入证明范本
2014/01/09 职场文书
函授自我鉴定范文
2014/02/06 职场文书
《生命的药方》教学反思
2014/04/08 职场文书
《厄运打不垮的信念》教学反思
2014/04/13 职场文书
煤矿安全承诺书
2014/05/22 职场文书
农村门前三包责任书
2014/07/25 职场文书
干部培训工作总结2015
2015/05/25 职场文书