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 import css实例代码
Jul 18 Javascript
关于javascript function对象那些迷惑分析
Oct 24 Javascript
基于dom编程中 动态创建与删除元素的使用
Apr 17 Javascript
jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
Jun 04 Javascript
JavaScript中的全局对象介绍
Jan 01 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
Jun 10 Javascript
用JS生成UUID的方法实例
Mar 30 Javascript
js 判断附件后缀的简单实现方法
Oct 11 Javascript
javascript实现去除HTML标签的方法
Dec 26 Javascript
el表达式 写入bootstrap表格数据页面的实例代码
Jan 11 Javascript
浅谈在koa2中实现页面渲染的全局数据
Oct 09 Javascript
对vue v-if v-else-if v-else 的简单使用详解
Sep 29 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 在线打包_支持子目录
2008/06/28 PHP
php 攻击方法之谈php+mysql注射语句构造
2009/10/30 PHP
php下删除一篇文章生成的多个静态页面
2010/08/08 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
PHP const定义常量及global定义全局常量实例解析
2020/05/28 PHP
基于jQuery的图片剪切插件
2011/08/03 Javascript
js/html光标定位的实现代码
2013/09/23 Javascript
JavaScript使用HTML5的window.postMessage实现跨域通信例子
2014/04/11 Javascript
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
2016/07/27 Javascript
javascript 中的继承实例详解
2017/05/05 Javascript
详解升级react-router 4 踩坑指南
2017/08/14 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
Node.js Express安装与使用教程
2018/05/11 Javascript
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
2018/07/30 Javascript
深度解读vue-resize的具体用法
2020/07/08 Javascript
[01:07:21]NAVI vs VG Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
详细解读Python中的__init__()方法
2015/05/02 Python
python dict 字典 以及 赋值 引用的一些实例(详解)
2017/01/20 Python
对python判断ip是否可达的实例详解
2019/01/31 Python
Python XlsxWriter模块Chart类用法实例分析
2019/03/11 Python
利用anaconda保证64位和32位的python共存
2021/03/09 Python
python 计算概率密度、累计分布、逆函数的例子
2020/02/25 Python
pycharm 2018 激活码及破解补丁激活方式
2020/09/21 Python
美国高街时尚品牌:OASAP
2016/07/24 全球购物
索尼巴西商店:Sony巴西
2019/06/21 全球购物
《小猪家的桃花树》教学反思
2014/04/11 职场文书
高中英语演讲稿范文
2014/04/24 职场文书
实习报告评语
2014/04/26 职场文书
学校党委副书记个人对照检查材料思想汇报
2014/09/28 职场文书
先进基层党组织材料
2014/12/25 职场文书
2015年安置帮教工作总结
2015/05/22 职场文书
Nginx tp3.2.3 404问题解决方案
2021/03/31 Servers
Python利器openpyxl之操作excel表格
2021/04/17 Python
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js
python神经网络 使用Keras构建RNN训练
2022/05/04 Python