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入门基础之私有变量
Feb 23 Javascript
ie7+背景透明文字不透明超级简单的实现方法
Jan 17 Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
Dec 15 Javascript
第八篇Bootstrap下拉菜单实例代码
Jun 21 Javascript
JavaScript表单验证完美代码
Mar 02 Javascript
JS简单实现数组去重的方法示例
Mar 27 Javascript
JS实现静态页面搜索并高亮显示功能完整示例
Sep 19 Javascript
js+canvas实现验证码功能
Sep 21 Javascript
基于vue v-for 多层循环嵌套获取行数的方法
Sep 26 Javascript
详解微信小程序开发(项目从零开始)
Jun 06 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
Mar 23 Javascript
javascript实现移动端红包雨页面
Jun 23 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中使用Imagick实现各种图片效果实例
2015/01/21 PHP
php字符串函数学习之substr()
2015/03/27 PHP
Laravel基础_关于view共享数据的示例讲解
2019/10/14 PHP
javascript动画效果类封装代码
2007/08/28 Javascript
统计出现最多的字符次数的js代码
2010/12/03 Javascript
js实现运动logo图片效果及运动元素对象sportBox使用方法
2012/12/25 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
浅谈js函数的多种定义方法与区别
2016/11/29 Javascript
javascript 中null和undefined区分和比较
2017/04/19 Javascript
通俗解释JavaScript正则表达式快速记忆
2017/08/23 Javascript
图文介绍Vue父组件向子组件传值
2018/02/17 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
2018/04/05 Javascript
javascript中this的用法实践分析
2019/07/29 Javascript
如何实现一个简易版的vuex持久化工具
2019/09/11 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
2020/07/11 Javascript
[52:08]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第一局
2016/03/05 DOTA
[01:12:40]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第三场 1月25日
2021/03/11 DOTA
python正则表达式抓取成语网站
2013/11/20 Python
JSONLINT:python的json数据验证库实例解析
2017/11/28 Python
Python面向对象之Web静态服务器
2019/09/03 Python
python-web根据元素属性进行定位的方法
2019/12/13 Python
简单了解pytest测试框架setup和tearDown
2020/04/14 Python
django创建超级用户时指定添加其它字段方式
2020/05/14 Python
优质有机椰子产品:Dr. Goerg
2019/09/24 全球购物
泰国第一在线超市:Tops
2021/02/13 全球购物
软件测试工程师笔试题带答案
2015/03/27 面试题
人力资源专员岗位职责
2014/01/30 职场文书
教师校本培训方案
2014/02/26 职场文书
装修施工安全责任书
2014/07/24 职场文书
2015年挂职锻炼工作总结
2014/12/12 职场文书
酒店工程部岗位职责
2015/02/12 职场文书
专家推荐信范文
2015/03/26 职场文书
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android
使用opencv-python如何打开USB或者笔记本前置摄像头
2022/06/21 Python