精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

淺析利用Javascript獲取隨機顏色

開發 前端
這里我們將介紹如何利用Javascript獲取隨機顏色,希望本文能對大家日常的開發工作有所幫助。

本文將談到利用Javascript獲取隨機顏色,這里我們需要知道做Javascript獲取隨機顏色主要是在作圖時方便展示,希望大家能從本文獲得幫助。

在制作餅圖或標簽云時,我們通常需要很多顏色,方法有二。一是準備一組漂亮的候選顏色,二是隨機生成顏色。在數量很多或不明確時,我想后者就是唯一的出路了。谷歌了一下,整理如下,按由淺入深的順序排列。

實現1

  1. var getRandomColor = function(){    
  2. return  '#' +      
  3. (function(color){      
  4. return (color +=  '0123456789abcdef'[Math.floor(Math.random()*16)])        
  5. && (color.length == 6) ?  color : arguments.callee(color);    
  6. })('');   

隨機生成6個字符然后再串到一起,閉包調用自身與三元運算符讓程序變得內斂,初心者應該好好學習這種寫法。

實現2

  1. var getRandomColor = function(){    
  2. return (function(m,s,c){    
  3. return (c ? arguments.callee(m,s,c-1) : '#') +        
  4. s[m.floor(m.random() * 16)]   
  5. })(Math,'0123456789abcdef',5)   

把Math對象,用于生成hex顏色值的字符串提取出來,并利用第三個參數來判斷是否還繼續調用自身。

實現3

  1. Array.prototype.map = function(fn, thisObj) {    
  2. var scope = thisObj || window;   
  3. var a = [];    
  4. for ( var i=0, j=this.length; i < j; ++i ) {      
  5. a.push(fn.call(scope, this[i], i, this));    
  6. }    
  7. return a;   
  8. };   
  9. var getRandomColor = function(){   
  10. return '#'+'0123456789abcdef'.split('').map(function(v,i,a){       
  11. return i>5 ? null : a[Math.floor(Math.random()*16)] }).join('');   

這個要求我們對數組做些擴展,map將返回一個數組,然后我們再用join把它的元素串成字符。

實現4

  1. var getRandomColor = function(){    
  2. return '#'+Math.floor(Math.random()*16777215).toString(16);   

這個實現非常逆天,雖然有點小bug。我們知道hex顏色值是從#000000到#ffffff,后面那六位數是16進制數,相當于"0x000000"到"0xffffff"。這實現的思路是將hex的***值ffffff先轉換為10進制,進行random后再轉換回16進制。我們看一下,如何得到16777215 這個數值的。

  1. <!doctype html> 
  2. <meta charset="utf-8"/> 
  3. <meta http-equiv="X-UA-Compatible" content="IE=8"/> 
  4. <title>hex的***值</title> 
  5. <script type="text/javascript" charset="utf-8"> 
  6. window.onload = function () {  
  7. alert(parseInt("0xffffff",16).toString(10));  
  8. };  
  9. </script> 
  10. <div id="text"></div> 

運行代碼

實現5

  1. var getRandomColor = function(){    
  2. return '#'+(Math.random()*0xffffff<<0).toString(16);   

基本實現4的改進,利用左移運算符把0xffffff轉化為整型。這樣就不用記16777215了。由于左移運算符的優先級比不上乘號,因此隨機后再左移,連Math.floor也不用了。

實現6

  1. var getRandomColor = function(){   
  2. return '#'+(function(h){     
  3. return new Array(7-h.length).join("0")+h   
  4. })((Math.random()*0x1000000<<0).toString(16))   

修正上面版本的bug(無法生成純白色與hex位數不足問題)。0x1000000相當0xffffff+1,確保會抽選到0xffffff。在閉包里我們處理hex值不足6位的問題,直接在未位補零。

實現7

  1. var getRandomColor = function(){   
  2. return '#'+('00000'+(Math.random()*0x1000000<<0).toString(16)).substr(-6);   

這次在前面補零,連遞歸檢測也省了。

上面版本生成顏色的范圍算是大而全,但隨之而來的問題是顏色不好看,于是實現8搞出來了。它生成的顏色相當鮮艷。

實現8

  1. var getRandomColor = function(){      
  2. return "hsb(" + Math.random()  + ", 1, 1)";   

實戰一下:

  1. <!doctype html>  
  2. <html dir="ltr" lang="zh-CN">  
  3. <head>  
  4. <meta charset="utf-8"/>  
  5. <meta http-equiv="X-UA-Compatible" content="IE=8">  
  6. <title>初級餅圖</title>  
  7. <script src="http://bloghighlighter.googlecode.com/files/raphael-min.js" type="text/javascript" ></script>  
  8. <script type="text/javascript" charset="utf-8">  
  9.  
  10. var getRandomColor = function(){  
  11. return "hsb(" + Math.random()  + ", 1, 1)";  
  12. }  
  13.  
  14. window.onload = function () {  
  15. var paper = Raphael("canvas", 700, 700);  
  16. paper.rect(0, 0, 640, 480,10).attr({fill: "#F2F1D7",stroke: "none"});//設置畫板  
  17.  
  18. function drawSector(cx,cy,r,paper,oc,startAngle){  
  19. var angleplus = 360 * oc / 100,//360度乘以40%  
  20. startAngle = startAngle || 0,  
  21. endAngle =startAngle+angleplus,  
  22. rad = Math.PI / 180,  
  23. x1 = cx + r * Math.cos(-startAngle * rad),  
  24. x2 = cx + r * Math.cos(-endAngle * rad),  
  25. y1 = cy + r * Math.sin(-startAngle * rad),  
  26. y2 = cy + r * Math.sin(-endAngle * rad);  
  27. var path = ["M", cx, cy, "L", x1, y1, "A", r, r, 0, +(endAngle - startAngle > 180), 0, x2, y2, "z"];  
  28. path = path.join(" ");  
  29. paper.path({fill:getRandomColor()},path);  
  30. return endAngle  
  31. }  
  32. var ocs = [40,25,17,10,8];  
  33. for(var i=0,l=ocs.length,startAngle;i<l;i++){  
  34. startAngle = drawSector(300,300,100,paper,ocs[i],startAngle);  
  35. }  
  36.  
  37. };  
  38. </script>  
  39. <style type="text/css" media="screen">  
  40. #canvas {  
  41. width: 700px;  
  42. height: 700px;  
  43. }  
  44. </style>  
  45. <title>初級餅圖</title>  
  46. </head>  
  47. <body>  
  48. <p>初級餅圖</p>  
  49. <div id="canvas"></div>  
  50. </body>  
  51. </html> 

運行代碼

原文標題:javascript獲取隨機顏色

鏈接:http://www.cnblogs.com/rubylouvre/archive/2009/09/24/1572977.html

【編輯推薦】

  1. JSON是什么?為JavaScript準備的數據格式
  2. 十個最常用的JavaScript自定義函數
  3. 有關JavaScript事件加載的一些延伸思考
  4. JavaScript使用心得匯總:從BOM和DOM談起
  5. ExtJS在Android模擬器上的運行效果
責任編輯:彭凡 來源: 博客園
相關推薦

2009-09-17 10:57:06

Linq隨機讀取數據

2010-09-28 14:12:50

Javascript

2011-03-10 14:19:56

JavaScript

2024-09-04 08:40:51

2021-07-27 22:56:00

JavaScript編程開發

2009-07-14 11:34:42

MyEclipse斷點JavaScript

2009-08-28 15:52:23

C#利用sharpzi

2009-07-10 10:04:28

MetaWeblog接

2011-06-16 11:23:42

光纖彎曲損耗

2011-05-23 11:19:26

2009-07-31 09:00:44

ASP.NET生成隨機

2010-09-30 15:19:33

2016-10-19 14:35:20

JavaScript函數式編程

2016-09-06 21:37:41

2021-02-07 22:59:55

JavaScript編程方法鏈

2011-03-07 09:41:10

JavaScript

2009-07-24 17:30:37

Javascript閉

2011-06-16 11:15:14

光纖微彎損耗

2017-09-18 15:58:09

2011-03-08 09:15:04

JavaScript
點贊
收藏

51CTO技術棧公眾號

国产自产精品| 亚洲另类在线一区| 中文日韩欧美| 日本一区二区三区免费视频| 45www国产精品网站| 国产精品一区二区av影院萌芽| 九色91国产| 美女国产一区二区三区| 做爰无遮挡三级| 国产精品国产精品国产专区蜜臀ah| 久草中文综合在线| 亚洲视频免费播放| 91精品国产成人| 亚洲品质自拍| 人妻少妇无码精品视频区| 蜜月aⅴ免费一区二区三区 | av电影中文字幕| 亚洲一二三四在线| www.激情五月| 97久久伊人激情网| 亚洲激精日韩激精欧美精品| 日本少妇裸体做爰| 欧美成人精品影院| 久久亚洲欧洲| 天堂成人在线观看| 妞干网在线观看视频| 中文字幕视频一区| 在线观看亚洲精品福利片| 午夜在线免费观看视频| 欧美精品播放| 欧美精品一区二区在线播放| 在线观看不卡| 欧美成熟毛茸茸| 一区二区在线中文字幕电影视频| 91精品国产色综合久久久蜜香臀| 美女国产一区二区三区| 成人va天堂| 日韩免费成人av| 77777少妇光屁股久久一区| 一区二区三区免费看视频| 视频精品二区| 亚洲自拍偷拍精品| 亚洲高清免费观看高清完整版| 亚洲天堂中文字幕在线观看| 日韩精品卡通动漫网站| 丝袜亚洲欧美日韩综合| 高清精品在线| 国产欧美在线一区| 尤物九九久久国产精品的特点| 美女网站久久| 麻豆影视在线| 小泽玛利亚视频在线观看| 亚洲激情第一页| 欧美+日本+国产+在线a∨观看| 无码 人妻 在线 视频| 国产精品免费看久久久香蕉| caoporm超碰国产精品| av色综合久久天堂av色综合在| 日本久久久精品视频| 久久成人精品视频| 媚黑女一区二区| 青春有你2免费观看完整版在线播放高清 | 97av中文字幕| 日韩一区二区三区视频在线| 91精品蜜臀一区二区三区在线| 亚洲中文字幕一区二区| 日韩欧美视频网站| 欧美一区二区在线观看| 国产精品盗摄久久久| 午夜写真片福利电影网| 婷婷精品进入| 国产一区二区三区18| 右手影院亚洲欧美| 极品国产人妖chinesets亚洲人妖| 日韩欧美视频在线| 美女被艹视频网站| 精品成人18| 日韩欧美色综合| 欧美xxxxxbbbbb| 国产精品麻豆| 日韩精品一区二区三区在线观看| 午夜大片在线观看| 日韩免费高清视频网站| 欧美大片在线观看| 国产高清成人久久| 亚洲品质自拍| 中文字幕视频在线免费欧美日韩综合在线看| 成年人网站免费在线观看| 天堂俺去俺来也www久久婷婷| 亚洲精品第一国产综合精品| 国产伦精品一区二区三区妓女| 欧美色图婷婷| 亚洲色图校园春色| 成人性视频免费看| 亚洲先锋影音| 国内精品久久久久久久| 久久久国产精品一区二区三区| 欧美日韩免费在线视频| 一区二区三区在线观看国产| 91九色精品视频| 成年人深夜视频| yiren22综合网成人| 欧美激情在线观看视频免费| 一区二区三区av在线| 黄色的网站在线观看| 国产成人福利av| 欧美电影一区二区三区| 苍井空张开腿实干12次| 日韩美女毛片| 色哟哟入口国产精品| 欧美性猛交xxxxx少妇| 亚洲国产日本| 国产精品偷伦一区二区| 性一交一乱一伧老太| 91麻豆.com| 99久久久无码国产精品性色戒| sm在线观看| 欧美亚洲国产一区二区三区va| 中国老熟女重囗味hdxx| 少妇精品久久久一区二区三区 | 亚洲性生活大片| 高清日韩电视剧大全免费| 欧美日韩一区二| 中国av在线播放| 欧美色视频日本高清在线观看| 国产精品a久久久久久| 日韩亚洲欧美综合| 国产精品激情偷乱一区二区∴| 精品一区二区三区在线播放| 国产日韩欧美中文在线| 黄页视频在线播放| 国产性猛交╳xxx乱大交| 蜜臀av粉嫩av懂色av| 久草综合在线观看| 久久不射影院| 色综合久久久久久久| 欧美熟妇另类久久久久久多毛| 奇米色欧美一区二区三区| 久久久视频精品| 亚洲自拍偷拍另类| 日本一区二区成人| 成年网站在线免费观看| 911精品国产| 久久影院在线观看| 男人的天堂av网站| 99在线精品观看| 妞干网视频在线观看| 国产亚洲久久| 午夜国产精品视频| 欧美一区三区| 欧美三级网址| av中文字幕免费| 内射中出日韩无国产剧情| 日韩亚洲视频在线| 欧美最近摘花xxxx摘花| 国产亚洲精品久久久| 亚洲成人1区2区| 久久精品久久综合| 国精品一区二区| 亚洲黄页在线观看| 99热国产在线| 在线观看免费av片| 丰满人妻一区二区三区免费视频棣| 亚洲色欲久久久综合网东京热| 精品伦理一区二区三区| 国产91视觉| 久久亚洲影音av资源网| 亚洲护士老师的毛茸茸最新章节| 欧美日韩1区2区| 午夜影院久久久| 国产精品网曝门| 91丨九色丨蝌蚪丨老版| 777久久久精品| www.超碰97| 激情综合久久| 国产精品系列在线播放| 欧美午夜在线| 日韩理论在线| 高清精品xnxxcom| 日日夜夜综合| 欧美成a人片在线观看久| 国产精品一区二区美女视频免费看| 午夜精彩国产免费不卡不顿大片| 国产suv一区二区三区88区| 成人动漫一区二区三区| 日韩精品色哟哟| 久久电影一区| 国产精品小仙女| 水莓100在线视频| 三区在线视频| 亚洲国产精品成人久久蜜臀| 中文字幕精品一区二区精| 日韩无码精品一区二区三区| 亚洲天堂2018av| 男人操女人逼免费视频| 成人短视频在线观看免费| 国产成人一二三区| 午夜精品久久久久久久无码| eeuss中文| 视频一区视频二区视频| 青春草在线视频免费观看| 国产精品久久久影院| 国产一区二区三区精彩视频| 国产精品网站免费| 亚洲 欧美 日韩系列| 欧美一级特黄aaa| 亚洲AV成人精品| 成熟妇人a片免费看网站| 国产精品嫩草av| 亚洲欧洲综合网| 老女人性淫交视频| 波多野结衣一区二区在线| 99热精品在线播放| 国产理论电影在线观看| 3p视频在线观看| 国产人成网在线播放va免费| ririsao久久精品一区| 日本aa在线| 欧美一级鲁丝片| 黑人一区二区三区| 9l视频自拍蝌蚪9l视频成人| 亚州av一区| 老司机久久99久久精品播放免费| 高清国产一区二区| 亚洲精品国产一区二区精华液| 日韩欧美亚洲综合| 亚洲精品丝袜日韩| 国产亚洲福利一区| 亚洲综合激情网| 91一区二区三区在线观看| 亚洲精品乱码久久久久久久久| 欧美日韩在线一区二区| 欧美极品欧美精品欧美视频 | 69堂免费视频| 激情小说一区| 91久久精品一区二区别| 91视频亚洲| 国产免费一区视频观看免费 | 欧美视频一二三区| 亚洲精品国产精品久久清纯直播 | 激情小视频网站| 久久精品国产亚洲夜色av网站| 久久综合久久综合这里只有精品| 成人性生交大片免费看96| 国产美女91呻吟求| 精品视频一区二区三区四区五区| 欧美岛国在线观看| 国产97色在线|日韩| 国产日本在线播放| 在线免费观看视频| 麻豆成全视频免费观看在线看| 国产日韩欧美麻豆| 初高中福利视频网站| 精品影视av免费| 岛国av免费在线| 六月丁香婷婷色狠狠久久| 超碰在线公开97| 狂野欧美xxxx韩国少妇| 欧美精品一区二区精品网| 亚洲国产成人一区二区| 精品久久久三级丝袜| 91丨porny丨对白| 亚洲图片在线视频| www.久久精品| 日本黄色录像片| 91美女视频网站| 中文字幕av久久爽一区| 国产精品色哟哟| 国产一区第一页| 国产精品久久久久7777按摩| 亚洲综合久久av一区二区三区| 在线中文字幕播放| 日韩一级完整毛片| 蜜桃视频污在线观看| 亚洲精品白浆高清久久久久久| 日产精品久久久久久久性色| 亚洲欧美日韩高清| 免费在线观看黄色网| 久久99视频免费| 麻豆视频在线看| 国产精品久久久久久婷婷天堂| 四虎成人精品一区二区免费网站| 92国产精品视频| 国产精品毛片久久久| 欧洲高清一区二区| 天天天综合网| 欧美日韩黄色一级片| 免费观看在线综合色| 欧美一级大片免费看| 91污在线观看| 国产主播av在线| 亚洲在线中文字幕| 色屁屁影院www国产高清麻豆| 欧美久久久久免费| 欧美少妇bbw| 在线观看视频99| 成人福利电影| 国产精品久久中文| 粉嫩的18在线观看极品精品| 亚洲精品一区二区三| 日韩一级不卡| 男女污污视频网站| 337p粉嫩大胆色噜噜噜噜亚洲| 国产精品69久久久久孕妇欧美| 亚洲主播在线播放| 在线观看黄色国产| 亚洲精品美女在线观看| 成人日韩欧美| 国产精品国产亚洲伊人久久 | av在线不卡一区| 欧美精品一二| 中国丰满人妻videoshd| 国产99久久久国产精品免费看| 日韩一级片在线免费观看| 偷拍与自拍一区| www.日韩高清| 日韩视频在线观看免费| 国产一区二区主播在线| 久久久一本精品99久久精品| 欧美日本在线| www激情五月| 国产精品三级视频| 销魂美女一区二区| 日韩av在线电影网| 免费在线国产视频| 91欧美日韩一区| 日本女优一区| 日本在线观看a| 不卡影院免费观看| 国产乱国产乱老熟300| 欧美三级蜜桃2在线观看| 日韩一二三四| 91精品国产乱码久久久久久蜜臀| av男人一区| 97免费视频观看| 国产不卡视频一区| 黄色在线观看免费| 日韩欧美电影一区| 男男gaygays亚洲| 国内免费精品永久在线视频| www.com亚洲| 精品久久国产97色综合| 丝袜国产在线| 99精品99久久久久久宅男| 中文精品久久| 亚洲综合20p| 亚洲蜜桃精久久久久久久| 亚洲精品国产系列| av网站免费在线观看| 成人精品视频99在线观看免费 | 中文字幕av日韩精品| 久久se精品一区精品二区| 二区三区四区视频| 宅男在线国产精品| 18加网站在线| 成人女人免费毛片| 亚洲欧洲日本mm| av小说在线观看| 欧美影院一区二区| 老司机免费在线视频| 69174成人网| 在线国产日韩| 波多野结衣av在线观看| 欧美三级乱人伦电影| 操你啦视频在线| 国产精品一码二码三码在线| 日韩亚洲在线| 欧美激情视频二区| 91精品国产欧美日韩| 国产精品蜜臀| 国产在线播放一区二区| 欧美美乳在线| 国产黄人亚洲片| 丰满少妇大力进入| a级高清视频欧美日韩| 五月天激情四射| 色老头一区二区三区在线观看| 99久久久国产| 水蜜桃色314在线观看| 国产欧美日韩综合| 国产激情视频在线播放| 91成人福利在线| 不卡亚洲精品| 欧美在线三级电影| 美国黄色a级片| 欧美日韩精品在线观看| 国产高清视频在线| 亚洲一区二区三区视频| 欧美黄色aaaa| 动漫精品一区二区三区| 欧美美女一区二区三区| 黄色小说在线播放| 日韩在线国产| 成人av影院在线| 欧美性受xxx黑人xyx性爽| 欧美激情视频一区| 菠萝蜜一区二区| 黄色性视频网站| 欧美日韩精品一区二区三区 | 伦理一区二区|