漂亮! js实现颜色渐变效果


Posted in Javascript onAugust 12, 2016

今天做组织机构,要分级别显示颜色,自己计算半天也没算出颜色渐变的方法,出来总是花里胡哨的难看的不要不要的,所以查了一下,找到一个js代码,试了试,很完美哦! 

漂亮! js实现颜色渐变效果

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <title></title>
</head>
<body>
<script src="js/jquery-1.11.3.js"></script>
<script src="js/swiper-3.3.1.jquery.min.js"></script>
<script type="text/javascript">
 /*
  // startColor:开始颜色hex
  // endColor:结束颜色hex
  // step:几个阶级(几步)
  */
 function gradientColor(startColor,endColor,step){
  startRGB = this.colorRgb(startColor);//转换为rgb数组模式
  startR = startRGB[0];
  startG = startRGB[1];
  startB = startRGB[2];

  endRGB = this.colorRgb(endColor);
  endR = endRGB[0];
  endG = endRGB[1];
  endB = endRGB[2];

  sR = (endR-startR)/step;//总差值
  sG = (endG-startG)/step;
  sB = (endB-startB)/step;

  var colorArr = [];
  for(var i=0;i<step;i++){
   //计算每一步的hex值
   var hex = this.colorHex('rgb('+parseInt((sR*i+startR))+','+parseInt((sG*i+startG))+','+parseInt((sB*i+startB))+')');
   colorArr.push(hex);
  }
  return colorArr;
 }

 // 将hex表示方式转换为rgb表示方式(这里返回rgb数组模式)
 gradientColor.prototype.colorRgb = function(sColor){
  var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
  var sColor = sColor.toLowerCase();
  if(sColor && reg.test(sColor)){
   if(sColor.length === 4){
    var sColorNew = "#";
    for(var i=1; i<4; i+=1){
     sColorNew += sColor.slice(i,i+1).concat(sColor.slice(i,i+1));
    }
    sColor = sColorNew;
   }
   //处理六位的颜色值
   var sColorChange = [];
   for(var i=1; i<7; i+=2){
    sColorChange.push(parseInt("0x"+sColor.slice(i,i+2)));
   }
   return sColorChange;
  }else{
   return sColor;
  }
 };

 // 将rgb表示方式转换为hex表示方式
 gradientColor.prototype.colorHex = function(rgb){
  var _this = rgb;
  var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
  if(/^(rgb|RGB)/.test(_this)){
   var aColor = _this.replace(/(?:(|)|rgb|RGB)*/g,"").split(",");
   var strHex = "#";
   for(var i=0; i<aColor.length; i++){
    var hex = Number(aColor[i]).toString(16);
    hex = hex<10 ? 0+''+hex :hex;// 保证每个rgb的值为2位
    if(hex === "0"){
     hex += hex;
    }
    strHex += hex;
   }
   if(strHex.length !== 7){
    strHex = _this;
   }
   return strHex;
  }else if(reg.test(_this)){
   var aNum = _this.replace(/#/,"").split("");
   if(aNum.length === 6){
    return _this;
   }else if(aNum.length === 3){
    var numHex = "#";
    for(var i=0; i<aNum.length; i+=1){
     numHex += (aNum[i]+aNum[i]);
    }
    return numHex;
   }
  }else{
   return _this;
  }
 }
 var gradient = new gradientColor('#e82400','#8ae800',10);
 console.log(gradient);//控制台输出
 alert(gradient);
 for(var i=0;i<gradient.length;i++){
  var htmls='<div class="mmm'+i+'">'+i+'</div>';
  $("body").append(htmls);
  console.log($("mmm"+i));
  console.log(gradient[i]);
  $(".mmm"+i).css("background-color",gradient[i]);
 }

</script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Js,alert出现乱码问题的解决方法
Jun 19 Javascript
jquery中的过滤操作详细解析
Dec 02 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
Jan 10 Javascript
Javascript的&amp;&amp;和||的另类用法
Jul 23 Javascript
JavaScript中的类(Class)详细介绍
Dec 30 Javascript
JavaScript动态改变div属性的实现方法
Jul 22 Javascript
AngularJs expression详解及简单示例
Sep 01 Javascript
使用JS轻松实现ionic调用键盘搜索功能(超实用)
Sep 06 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
Feb 27 Javascript
webpack项目调试以及独立打包配置文件的方法
Feb 28 Javascript
JavaScript组合模式---引入案例分析
May 23 Javascript
Js利用正则表达式去除字符串的中括号
Nov 23 Javascript
jQuery ztree实现动态树形多选菜单
Aug 12 #Javascript
jquery表格datatables实例解析 直接加载和延迟加载
Aug 12 #Javascript
jquery插件uploadify多图上传功能实现代码
Aug 12 #Javascript
Javascript中的对象和原型(二)
Aug 12 #Javascript
JavaScript中的对象和原型(一)
Aug 12 #Javascript
JavaScript中对象的不同创建方法
Aug 12 #Javascript
酷! 不同风格页面布局幻灯片特效js实现
Feb 19 #Javascript
You might like
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
2013/07/18 PHP
PHP中对缓冲区的控制实现代码
2013/09/29 PHP
php连接与操作PostgreSQL数据库的方法
2014/12/25 PHP
PHP判断网络文件是否存在的方法
2015/03/12 PHP
YII Framework框架教程之日志用法详解
2016/03/14 PHP
php7函数,声明,返回值等新特性介绍
2018/05/25 PHP
如何通过Apache在本地配置多个虚拟主机
2020/07/29 PHP
js实现的仿新浪微博完美的时间组件升级版
2011/12/20 Javascript
DOM基础教程之使用DOM控制表格
2015/01/20 Javascript
JavaScript制作颜色反转小游戏
2016/09/25 Javascript
基于JavaScript实现的顺序查找算法示例
2017/04/14 Javascript
zTree jQuery 树插件的使用(实例讲解)
2017/09/25 jQuery
详解vue mint-ui源码解析之loadmore组件
2017/10/11 Javascript
javascript原生封装一个淡入淡出效果的函数测试实例代码
2018/03/19 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
2018/06/29 Javascript
浅谈Node框架接入ELK实践总结
2019/02/22 Javascript
微信小程序实现签字功能
2019/12/23 Javascript
vue 点击其他区域关闭自定义div操作
2020/07/17 Javascript
Python文件和目录操作详解
2015/02/08 Python
python与sqlite3实现解密chrome cookie实例代码
2018/01/20 Python
python实现Flappy Bird源码
2018/12/24 Python
详解如何在Apache中运行Python WSGI应用
2019/01/02 Python
python3 Scrapy爬虫框架ip代理配置的方法
2020/01/17 Python
Keras SGD 随机梯度下降优化器参数设置方式
2020/06/19 Python
matplotlib grid()设置网格线外观的实现
2021/02/22 Python
阿里巴巴美国:Alibaba美国
2019/11/24 全球购物
法律专业自我鉴定
2013/10/03 职场文书
师范应届生求职信
2013/11/15 职场文书
大学生自助营养快餐店创业计划书
2014/01/13 职场文书
企业活动策划方案
2014/06/02 职场文书
园林技术专业求职信
2014/07/28 职场文书
2020年元旦晚会策划书模板
2019/12/30 职场文书
ElementUI实现el-form表单重置功能按钮
2021/07/21 Javascript
SpringBoot系列之MongoDB Aggregations用法详解
2022/02/12 MongoDB
速龙x4-860k处理器相当于i几
2022/04/20 数码科技