
/ 随机获取颜色 /
function getColor()
{
return (
function(m,s,c)
{
return (c>0 argumentscallee(m,s,c-1): '#') + s[mfloor(mrandom() 16)]
}
)(Math, ['1','2','3','4','5','6','7','8','9','0','a','b','c','d','e','f'], 5);
}
var _str = "每个字的颜色都不一样?sdna,sjdansdnasdlhasdnas,dmas,das,dbnaalsdkadjlakwjdlwakeqlkjewqlhelheqlwrjqlwrkjqwjrqwljrkqwljqwl'jqlwjkqlwjqlwjewq;alsdfjafa,as da,sdn alsd hasldhalsd halsdk asldkjasld alskd alsdkj alsdk alsdk alskd jalasdklj alkd asl;d jasldj asldk jaklsdj als;kdj as";
var arr = _strsplit("");
var str = "";
for(var i=0,len=arrlength; i<len; i++)
{
str += '<span style="color:'+getColor()+';">'+arr[i]+"</span>";
}
1、这个函数来自Rico,Longbill及Dnewcn修改。
2、说明: 传入参数一个,为元素的id值或元素本身,返回为元素的真实背景色值(字符串)。背景值均为16进制的值(原代码是是IE里面返回的是16进制的值,而Mozilla则是rgb值,Dnewcn将其修改为均返回16进制的值)。
3、代码如下:
<html><head>
<title>得到元素真实的背景颜色</title>
<style>
classname {background-color:#ff99dd;}
#div3 {background-color:#d8bfd8;}
div {background-color:#87cefa;border:1px solid #333333;margin:10px;padding:4px;}
body {background-color:#bed742;}
#div4 {background-color:transparent;}
</style>
</head>
<body>
<span style="text-align:center;font-size:20px;color:#ff7f50;width:100%;">得到元素真实的背景颜色 <font style="font-size:12px;">By <a href=
<div id='div1'>div1 直接通过div标签定义背景色(#87cefa)</div>
<div id='div2' class=classname>div2 通过class name定义背景色(#ff99dd)</div>
<div id='div3'>div3 通过id定义背景色(#d8bfd8)</div>
<div id='div4'>div4 这是一个透明的div,背景色应为上一个元素的颜色(#bed742)</div>
<button onclick="go()">getBg()</button>
<script>
function getBg(element)
{//author: Longbill (
)
//dnewcn修补
var rgbToHex=function(rgbarray,array){
if (rgbarraylength < 3) return false;
if (rgbarraylength == 4 && rgbarray[3] == 0 && !array) return 'transparent';
var hex = [];
for (var i = 0; i < 3; i++){
var bit = (rgbarray[i] - 0)toString(16);
hexpush((bitlength == 1) '0' + bit : bit);
}
return array hex : '#' + hexjoin('');
}
//---------------
if (typeof element == "string") element = documentgetElementById(element);
if (!element) return;
cssProperty = "backgroundColor";
mozillaEquivalentCSS = "background-color";
if (elementcurrentStyle)
var actualColor = elementcurrentStyle[cssProperty];
else
{
var cs = documentdefaultViewgetComputedStyle(element, null);
var actualColor = csgetPropertyValue(mozillaEquivalentCSS)match(/\d{1,3}/g);
//-----
actualColor = (actualColor) rgbToHex(actualColor) : "transparent";
}
if (actualColor == "transparent" && elementparentNode)
return argumentscallee(elementparentNode);
if (actualColor == null)
return "#ffffff";
else
return actualColor;
}
function go()
{
for(var i=1;i<=4;i++) eval("alert('div"+i+":'+getBg('div"+i+"'));");
}
</script>
</body>
</html>
调用的例子:
consolelog(ColorLuminance(colorRGB(),05)); //先自动生成16进制颜色,在转成比原有颜色轻50%;
//16进制随机颜色
function colorRGB(){
return '#' + (function (h) {
return new Array(7 - hlength)join("0") + h
})((Mathrandom() 0x1000000 << 0)toString(16))
}
ColorLuminance接受两个参数:
参数1: 十六进制颜色值,例如“#abc”或“#123456”(散列是可选的)
参数2: 亮度因数,即,-01是10%更暗,02是轻20%等。
function ColorLuminance(hex, lum) {
// validate hex string
hex = String(hex)replace(/[^0-9a-f]/gi, '');
if (hexlength < 6) {
hex = hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2];
}
lum = lum || 0;
// convert to decimal and change luminosity
var rgb = "#", c, i;
for (i = 0; i < 3; i++) {
c = parseInt(hexsubstr(i2,2), 16);
c = Mathround(Mathmin(Mathmax(0, c + (c lum)), 255))toString(16);
rgb += ("00"+c)substr(clength);
}
return rgb;
}
相关资源:>
$color=array(黑,白,粉,红,蓝);
$c=shuffle($color);//随机打乱顺序
$c1=array_slice($c,0,3);
$c2=array_slice($c,1,3);
$c3=array_slice($c,2,3);
问题比较复杂,分步来讲:
因为你这张图,很显然是使用HSB颜色,固定H,S和B的取值范围都是0%~100%,所有可能的集合就是你的这张图,所以,首先要把rgb颜色转换成hsb颜色。
把得到的hsb颜色的h值固定,然后使用一个循环,把hsb(h,0%,0%)~hsb(h,100%,100%)都写入一个数组里,这里要注意hsb(h,12%,80%)和hsb(h,80%,12%)是不同的
再把hsb颜色转换成rgb颜色,然后输出。
好了,思路有了,接下来难点在于rgb与hsb的颜色转换。
二者的转换复杂程度非同一般,所以,如果真的需要,HI我,给你一篇文章地址。这里打不出网址来。
首先我不是很懂颜色,我只能大概给你,但是我不确定是不是能满足你的深色和浅色
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
div {
width: 200px;
height: 200px;
background: #C5C5C5;
}
animation {
animation: flash 2s linear 0s both;
-webkit-animation: flash 2s linear 0s both;
}
@keyframes flash {
from {
transform: translate(0, 0)
}
to {
transform: translate(200px, 0)
}
}
@-webkit-keyframes flash {
from {
transform: translate(0, 0)
}
to {
transform: translate(200px, 0)
}
}
</style>
</head>
<body class="body">
<div class="div1"></div>
<div class="div2"></div>
<button type="button">点我</button>
</body>
<script src="//cdnbootcsscom/jquery/1110/jqueryjs" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$('button')on("click", function() {
$('div')addClass('animation');
var getRandomColor = function() {
return '#' +
(function(color) {
return(color += '0123401234abcabc' [Mathfloor(Mathrandom() 16)]) &&
(colorlength == 6) color : argumentscallee(color);
})('');
}
var getRandomColor = function() {
return '#' +
(function(color) {
return(color += '5678956789defdef' [Mathfloor(Mathrandom() 16)]) &&
(colorlength == 6) color : argumentscallee(color);
})('');
}
consolelog(getRandomColor())
$("div1")css({
"background":getRandomColor
});
$("div2")css({
"background":getRandomColor
});
})
</script>
</html>
以上就是关于一段文字,每个字有不同的颜色javascript函数代码怎么写全部的内容,包括:一段文字,每个字有不同的颜色javascript函数代码怎么写、如何从js中获取元素的颜色并改变、js动态生成颜色浅的16进制值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)