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 相关文章推荐
Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
Mar 15 Javascript
javascript判断iphone/android手机横竖屏模式的函数
Dec 20 Javascript
jquery()函数的三种语法介绍
Oct 09 Javascript
Node.js 条形码识别程序构建思路详解
Feb 14 Javascript
js表单验证实例讲解
Mar 31 Javascript
jQuery实现定位滚动条位置
Aug 05 Javascript
JavaScript取得gridview中获取checkbox选中的值
Jul 24 Javascript
使用D3.js创建物流地图的示例代码
Jan 27 Javascript
layui实现tab的添加拒绝重复的方法
Sep 04 Javascript
node.js express框架实现文件上传与下载功能实例详解
Oct 15 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
May 19 Javascript
Vue 实现对quill-editor组件中的工具栏添加title
Aug 03 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
在任意字符集下正常显示网页的方法二(续)
2007/04/01 PHP
php simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
微信获取用户地理位置信息的原理与步骤
2015/11/12 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
2017/07/03 PHP
php简单计算权重的方法示例【适合抽奖类应用】
2019/06/10 PHP
javascript 中对象的继承〔转贴〕
2007/01/22 Javascript
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
JavaScript中的toLocaleDateString()方法使用简介
2015/06/12 Javascript
javascript常见数据验证插件大全
2015/08/03 Javascript
js行号显示的文本框实现效果(兼容多种浏览器 )
2015/10/23 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
JS实现拖动滚动条评分的效果代码分享
2016/09/29 Javascript
jQuery Ajax请求后台数据并在前台接收
2016/12/10 Javascript
JS实现一个简单的日历
2017/02/22 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
微信小程序实现下载进度条的方法
2017/12/08 Javascript
JS动画定时器知识总结
2018/03/23 Javascript
vue.js中npm安装教程图解
2018/04/10 Javascript
微信小程序实现购物页面左右联动
2019/02/15 Javascript
[03:57]2016完美“圣”典风云人物:rOtk专访
2016/12/09 DOTA
跟老齐学Python之通过Python连接数据库
2014/10/28 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
Django集成CAS单点登录的方法示例
2019/06/10 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
2019/08/09 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
2019/12/13 Python
快速解决jupyter启动卡死的问题
2020/04/10 Python
CSS3教程(6):创建网站多列
2009/04/02 HTML / CSS
写出二分查找算法的两种实现
2013/05/13 面试题
优秀学生评语大全
2014/04/25 职场文书
班主任评语大全
2014/04/26 职场文书
供应链金融服务方案
2014/05/25 职场文书
护理目标管理责任书
2014/07/25 职场文书
群众路线批评与自我批评发言稿
2014/10/16 职场文书
学校2016年圣诞节活动总结
2016/03/31 职场文书
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS