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 不只是脚本
May 30 Javascript
javascript两段代码,两个小技巧
Feb 04 Javascript
8个实用的jQuery技巧
Mar 04 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
Oct 17 Javascript
Node连接mysql数据库方法介绍
Feb 07 Javascript
微信小程序 image组件binderror使用例子与js中的onerror区别
Feb 15 Javascript
详解如何使用webpack在vue项目中写jsx语法
Nov 08 Javascript
JS+CSS实现滚动数字时钟效果
Dec 25 Javascript
Django+Vue跨域环境配置详解
Jul 06 Javascript
详解小程序云开发数据库
May 20 Javascript
layui form表单提交之后重新加载数据表格的方法
Sep 11 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
Oct 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
从零开始的异世界生活:第二季延期后,B站上架了第二部剧场版
2020/05/06 日漫
PHP内存缓存Memcached类实例
2014/12/08 PHP
php in_array() 检查数组中是否存在某个值详解
2016/11/23 PHP
PHP编程实现csv文件导入mysql数据库的方法
2017/04/29 PHP
js Event对象的5种坐标
2011/09/12 Javascript
JQuery获取或设置ckeditor的数据(示例代码)
2013/11/15 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
2015/04/16 Javascript
jQuery热气球动画半透明背景的后台登录界面代码分享
2015/08/28 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
2015/11/29 Javascript
JQuery解析XML的方法小结
2016/04/02 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
2016/05/24 Javascript
浅谈html转义及防止javascript注入攻击的方法
2016/12/04 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
2017/02/18 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
2018/07/25 Javascript
深入解析koa之中间件流程控制
2019/06/17 Javascript
Vue中通过属性绑定为元素绑定style行内样式的实例代码
2020/04/30 Javascript
如何在vue中使用HTML 5 拖放API
2021/01/14 Vue.js
python实现贪吃蛇小游戏
2020/03/21 Python
Python中时间datetime的处理与转换用法总结
2019/02/18 Python
flask框架路由常用定义方式总结
2019/07/23 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
2020/03/23 Python
pytorch 常用函数 max ,eq说明
2020/06/28 Python
.img/.hdr格式转.nii格式的操作
2020/07/01 Python
深入了解canvas在移动端绘制模糊的问题解决
2019/04/30 HTML / CSS
一道SQL存储过程面试题
2016/10/07 面试题
四种会话跟踪技术
2015/05/20 面试题
数控专业推荐信范文
2013/12/02 职场文书
高三自我评价
2014/02/01 职场文书
亲子拓展活动方案
2014/02/20 职场文书
二年级评语大全
2014/04/23 职场文书
电子信息专业应届生自荐信
2014/06/04 职场文书
小学生安全责任书
2014/07/25 职场文书
晚会主持人开场白台词
2015/05/28 职场文书
导游词之嵊泗列岛
2019/10/30 职场文书
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技