全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

jQuery与js实现颜色渐变的方法

本文实例讲述了jQuery与js实现颜色渐变的方法。分享给大家供大家参考,具体如下:

1.目的

本来想的是 提示用户应该点某个按钮 这个功能,就想着让这个按钮div的边框变成醒目的颜色然后逐渐变白。

在网上搜了搜,本来想使用jQuery的animate,后来发现这个方法只能用来进行长度的渐变。还有就是需要下载jQuery的颜色渐变插件来实现,感觉挺麻烦的,就自己用土办法实现了。

2.原理

先获得初始颜色的rgb,再获得终止颜色的rgb,使用rgb三个数字的差值,从初始颜色的rgb逐渐过渡到终止颜色的rgb。

3.代码

获得颜色rgb的代码如下:

//将输入的颜色字符串转换成十进制数组
function getData(color) {
  var re = RegExp;
  if (/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.test(color)) {
    //#rrggbb
    return [parseInt(re.$1,16),parseInt(re.$2,16),parseInt(re.$3,16)];
  } else if (/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i.test(color)) {
    //#rgb
    return [parseInt(re.$1+re.$1,16),parseInt(re.$2+re.$2,16),parseInt(re.$3+re.$3,16)];
  } else if (/^rgb(.*),(.*),(.*)$/i.test(color)) {
    //rgb(n,n,n) or rgb(n%,n%,n%)
    if(re.$1.indexOf("%")>-1){
      return [parseInt(parseFloat(re.$1, 10) * 2.55),
          parseInt(parseFloat(re.$2, 10) * 2.55),
          parseInt(parseFloat(re.$3, 10) * 2.55)];
    }else{
       return [parseInt(re.$1),parseInt(re.$2),parseInt(re.$3)];
    }
  }
}

方法中没有队color的验证之类的方法,见谅。传入的参数color格式可以是:"#1ba3e1"、"#f0e"、"rgb(200,50,100)"、"rgb(20%,80%,50%)"这四种格式。返回的是rgb三个数值组成的数组。

然后进行颜色的渐变:

(function($){$.fn.shade = function(prop,color1,color2,mills){
  var count = mills/200;
  var data1 = getData(color1);
  var data2 = getData(color2);
  var red = data1[0],green = data1[1],blue = data1[2];
  var r = (data2[0]-data1[0])/count,g = (data2[1]-data1[1])/count,b = (data2[2]-data1[2])/count;
  obj_temp = $(this);
  for(var i=1;i<count+1;i++){
    setTimeout("$(obj_temp).css('"+prop+"','rgb("+parseInt(red+r*i+0.5)+","+
        parseInt(green+g*i+0.5)+","+parseInt(blue+b*i+0.5)+")');", i*200);
  }
}})(jQuery);

这里我在jQuery中定义了一个shade函数,参数:对象渐变的属性(如border-color)、起始颜色、终止颜色、变色所需时间。我规定了200ms进行一次变色(可以自行调整),使用setTimeout函数每200ms执行一次变化。(我起初想使用while()或者递归来实现每隔一段时间执行一次变化,但js中的线程不像java中用Thread.sleep()就可以等待,所以不得不先将要运行的变色代码全部扔到setTimeout中,等待依次执行。)

代码中使用

$("#more").shade("border-color","#1ba3e1","#fff",2000);

就可以实现了。

注:运行此函数需要定义一个obj_temp的全局变量。

如果运行出现BUG自行调试。。。Thanks for watching.

PS:这里再为大家推荐几款本站的相关在线工具:

在线RGB、HEX颜色代码生成器:
http://tools./color/rgb_color_generator

RGB颜色查询对照表_颜色代码表_颜色的英文名称大全:
http://tools./color/jPicker

在线网页调色板工具:
http://tools./color/color_picker

在线颜色选择器工具/RGB颜色查询对照表:
http://tools./color/colorpicker

更多关于JavaScript相关内容可查看本站专题:《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。


# jQuery  # js  # 颜色  # 渐变  # jquery实现的随机多彩tag标签随机颜色和字号大小效果  # jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法  # jQuery实现的文字hover颜色渐变效果实例  # jquery实现实时改变网页字体大小、字体背景色和颜色的方法  # JQuery实现动态适时改变字体颜色的方法  # jQuery实现鼠标滑过Div层背景变颜色的方法  # jQuery获取样式中颜色值的方法  # jQuery获取随机颜色的实例代码  # 的是  # 递归  # 来实现  # 就可以  # 对照表  # 实现了  # 我在  # 相关内容  # 遍历  # 所需  # 数据结构  # 不像  # 给大家  # 转换成  # 更多关于  # 每隔  # 所述  # 几款  # 扔到  # 程序设计 


相关文章: 广州商城建站系统开发成本与周期如何控制?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  潍坊网站制作公司有哪些,潍坊哪家招聘网站好?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  教程网站设计制作软件,怎么创建自己的一个网站?  如何设计高效校园网站?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  已有域名建站全流程解析:网站搭建步骤与建站工具选择  专业商城网站制作公司有哪些,pi商城官网是哪个?  建站之星导航菜单设置与功能模块配置全攻略  如何挑选优质建站一级代理提升网站排名?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  常州自助建站工具推荐:低成本搭建与模板选择技巧  已有域名如何免费搭建网站?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  如何选择最佳自助建站系统?快速指南解析优劣  如何快速搭建FTP站点实现文件共享?  建站中国官网:模板定制+SEO优化+建站流程一站式指南  黑客如何通过漏洞一步步攻陷网站服务器?  盐城做公司网站,江苏电子版退休证办理流程?  青岛网站建设如何选择本地服务器?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  实惠建站价格推荐:2025年高性价比自助建站套餐解析  建站之星云端配置指南:模板选择与SEO优化一键生成  建站之星安装后界面空白如何解决?  如何通过wdcp面板快速创建网站?  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  如何自定义建站之星模板颜色并下载新样式?  ,在苏州找工作,上哪个网站比较好?  html制作网站的步骤有哪些,iapp如何添加网页?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  重庆网站制作公司哪家好,重庆中考招生办官方网站?  如何彻底删除建站之星生成的Banner?  建站之星多图banner生成与模板自定义指南  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  怀化网站制作公司,怀化新生儿上户网上办理流程?  如何在建站之星绑定自定义域名?  如何在Windows 2008云服务器安全搭建网站?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  建站之星如何取消后台验证码生成?  江苏网站制作公司有哪些,江苏书法考级官方网站?  建站之星如何保障用户数据免受黑客入侵?  建站为何优先选择香港服务器?  定制建站方案优化指南:企业官网开发与建站费用解析  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  如何在Ubuntu系统下快速搭建WordPress个人网站?  如何快速生成专业多端适配建站电话?  大型企业网站制作流程,做网站需要注册公司吗?  制作公司内部网站有哪些,内网如何建网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。