一段文字,每个字有不同的颜色javascript函数代码怎么写

一段文字,每个字有不同的颜色javascript函数代码怎么写,第1张

/ 随机获取颜色 /

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进制值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9528593.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存