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 与或运算符 || &amp;&amp; 妙用
Dec 09 Javascript
js获取网页高度(详细整理)
Dec 28 Javascript
JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
Dec 31 Javascript
javascript实现简单的二级联动
Mar 19 Javascript
使用canvas实现仿新浪微博头像截取上传功能
Sep 02 Javascript
Bootstrap栅格系统简单实现代码
Mar 06 Javascript
浅谈struts1 &amp; jquery form 文件异步上传
May 25 jQuery
利用 spin.js 生成等待效果(js 等待效果)
Jun 25 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
Sep 03 Javascript
Vue中的无限加载vue-infinite-loading的方法
Apr 08 Javascript
微信运维交互机器人的示例代码
Nov 12 Javascript
详解Vue组件之作用域插槽
Nov 22 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设计模式  Command(命令模式)
2011/06/17 PHP
PhpDocumentor 2安装以及生成API文档的方法
2014/05/21 PHP
php实现最简单的MVC框架实例教程
2014/09/08 PHP
PHP判断JSON对象是否存在的方法(推荐)
2016/07/06 PHP
PHP7新增运算符用法实例分析
2016/09/26 PHP
PHP常用算法和数据结构示例(必看篇)
2017/03/15 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
JavaScript 实现模态对话框 源代码大全
2009/05/02 Javascript
深入理解JavaScript系列(7) S.O.L.I.D五大原则之开闭原则OCP
2012/01/15 Javascript
Ajax执行顺序流程及回调问题分析
2012/12/10 Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
2013/03/31 Javascript
详细介绍8款超实用JavaScript框架
2013/10/25 Javascript
js获得网页背景色和字体色的方法
2014/03/21 Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
2014/06/26 Javascript
node.js中的fs.readlink方法使用说明
2014/12/17 Javascript
JS设置网页图片vspace和hspace属性的方法
2015/04/01 Javascript
jQuery的几个我们必须了解的特点
2015/05/03 Javascript
解决JavaScript数字精度丢失问题的方法
2015/12/03 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
layui实现动态和静态分页
2018/04/28 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
2018/07/25 Javascript
使用 Node.js 实现图片的动态裁切及算法实例代码详解
2018/09/29 Javascript
详解Angular Forms中自定义ngModel绑定值的方式
2018/12/10 Javascript
layer的prompt弹出框,点击回车,触发确定事件的方法
2019/09/06 Javascript
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
BootStrap前端框架使用方法详解
2020/02/26 Javascript
JS实现简单移动端鼠标拖拽
2020/07/23 Javascript
基于python的七种经典排序算法(推荐)
2016/12/08 Python
Python中字典的浅拷贝与深拷贝用法实例分析
2018/01/02 Python
使用Python读取安卓手机的屏幕分辨率方法
2018/03/31 Python
Python实现的求解最小公倍数算法示例
2018/05/03 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
2020/11/01 Python
Zooplus葡萄牙:欧洲领先的网上宠物商店
2018/07/01 全球购物
规划编制实施方案
2014/03/15 职场文书
查摆问题自查报告范文
2014/10/13 职场文书