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 相关文章推荐
ExtJS Store的数据访问与更新问题
Apr 28 Javascript
jquery Validation表单验证使用详解
Sep 12 Javascript
js实现匹配时换色的输入提示特效代码
Aug 17 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
Aug 18 Javascript
谈谈对offsetleft兼容性的理解
Nov 11 Javascript
JavaScript中获取Radio被选中的值
Nov 11 Javascript
tab栏切换原理
Mar 22 Javascript
AngularJS使用拦截器实现的loading功能完整实例
May 17 Javascript
js禁止表单重复提交
Aug 29 Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
Jan 09 Javascript
在Webpack中用url-loader处理图片和字体的问题
Apr 28 Javascript
Angular利用HTTP POST下载流文件的步骤记录
Jul 26 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网页木马一枚 附PHP木马的防范方法
2009/10/09 PHP
访问编码后的中文URL返回404错误的解决方法
2014/08/20 PHP
php中base_convert()进制数字转换函数实例
2014/11/20 PHP
Laravel 5框架学习之路由、控制器和视图简介
2015/04/07 PHP
php源码分析之DZX1.5随机数函数random用法
2015/06/17 PHP
Javascript base64编码实现代码
2011/12/02 Javascript
JavaScript面向对象编程入门教程
2014/04/16 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
2014/11/13 Javascript
JavaScript中的this关键字使用详解
2015/08/14 Javascript
第四章之BootStrap表单与图片
2016/04/25 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
2016/05/03 Javascript
jQuery页面加载初始化的3种方法(推荐)
2016/06/02 Javascript
javascript如何用递归写一个简单的树形结构示例
2017/09/06 Javascript
为jquery的ajax请求添加超时timeout时间的操作方法
2018/09/04 jQuery
Vue.js原理分析之nextTick实现详解
2020/09/07 Javascript
node.js如何根据URL返回指定的图片详解
2020/10/21 Javascript
vue3.0搭配.net core实现文件上传组件
2020/10/29 Javascript
[40:10]2015国际邀请赛全明星表演赛
2015/08/07 DOTA
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
理解生产者消费者模型及在Python编程中的运用实例
2016/06/26 Python
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
python 通过麦克风录音 生成wav文件的方法
2019/01/09 Python
美国受欢迎的眼影品牌:BH Cosmetics
2016/10/25 全球购物
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
马来西亚领先的在线礼品店:Giftr
2018/08/23 全球购物
mysql_pconnect()和mysql_connect()有什么区别
2012/05/25 面试题
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
商务英语专业毕业生自荐信
2013/11/05 职场文书
英语教师岗位职责
2014/03/16 职场文书
党的群众路线教育实践方案
2014/05/11 职场文书
走进敬老院活动总结
2014/07/10 职场文书
群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
思想工作总结范文
2015/08/12 职场文书
爱心捐款倡议书:点燃希望,传递温暖
2019/11/04 职场文书
使用pandas模块实现数据的标准化操作
2021/05/14 Python
Centos7 Shell编程之正则表达式、文本处理工具详解
2022/08/05 Servers