本文实例讲述了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获取随机颜色的实例代码
# 的是
# 递归
# 来实现
# 就可以
# 对照表
# 实现了
# 我在
# 相关内容
# 遍历
# 所需
# 数据结构
# 不像
# 给大家
# 转换成
# 更多关于
# 每隔
# 所述
# 几款
# 扔到
# 程序设计
相关文章:
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何在橙子建站中快速调整背景颜色?
如何在云主机上快速搭建多站点网站?
如何快速查询网站的真实建站时间?
如何做网站制作流程,*游戏网站怎么搭建?
简历在线制作网站免费版,如何创建个人简历?
如何在宝塔面板中创建新站点?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?
,巨量百应是干嘛的?
linux top下的 minerd 木马清除方法
C#如何在一个XML文件中查找并替换文本内容
建站之星代理商如何保障技术支持与售后服务?
网站制作话术技巧,网站推广做的好怎么话术?
C++时间戳转换成日期时间的步骤和示例代码
临沂网站制作公司有哪些,临沂第四中学官网?
制作网站的公司有哪些,做一个公司网站要多少钱?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
如何破解联通资金短缺导致的基站建设难题?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
广州建站公司哪家好?十大优质服务商推荐
已有域名和空间如何搭建网站?
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
视频网站制作教程,怎么样制作优酷网的小视频?
制作表格网站有哪些,线上表格怎么弄?
如何配置FTP站点权限与安全设置?
建站之星收费标准详解:套餐费用及年费价格表一览
如何制作网站标识牌,动态网站如何制作(教程)?
开源网站制作软件,开源网站什么意思?
浅谈Javascript中的Label语句
如何快速使用云服务器搭建个人网站?
如何高效配置香港服务器实现快速建站?
如何选择域名并搭建高效网站?
如何快速生成可下载的建站源码工具?
英语简历制作免费网站推荐,如何将简历翻译成英文?
h5网站制作工具有哪些,h5页面制作工具有哪些?
建站之星Pro快速搭建教程:模板选择与功能配置指南
建站主机是否等同于虚拟主机?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
如何用搬瓦工VPS快速搭建个人网站?
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
代购小票制作网站有哪些,购物小票的简要说明?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
建站上传速度慢?如何优化加速网站加载效率?
盐城做公司网站,江苏电子版退休证办理流程?
建站之星安装提示数据库无法连接如何解决?
SQL查询语句优化的实用方法总结
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
*请认真填写需求信息,我们会在24小时内与您取得联系。