微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

1.目的

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

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

2.原理

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

3.代码

获得颜色rgb的代码如下:

-1){ return [parseInt(parseFloat(re.$1,10) * 2.55),parseInt(parseFloat(re.$2,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三个数值组成的数组。

然后进行颜色的渐变:

rush:js;"> (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

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

代码中使用

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

就可以实现了。

函数需要定义一个obj_temp的全局变量

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

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

在线RGB、HEX颜色代码生成器:

RGB颜色查询对照表_颜色代码表_颜色的英文名称大全:

在线网页调色板工具:

在线颜色选择器工具/RGB颜色查询对照表:

更多关于JavaScript相关内容可查看本站专题:《》、《》、《》、《》、《》、《》及《用法总结》

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

原文地址:https://www.jb51.cc/jquery/42989.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐