精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

亚洲成年人在线观看| 中文字幕av一区二区三区| 舔着乳尖日韩一区| 中文字幕日韩在线观看| 精品这里只有精品| 亚洲av无码片一区二区三区 | 在线观看日本中文字幕| 欧美黑人猛交| 五月综合激情| 欧美色爱综合网| 久久riav| 日韩无码精品一区二区三区| 亚洲精品午夜| 一区二区三区在线视频观看| 91精品视频在线看| 久草手机视频在线观看| 青草综合视频| 国产精品每日更新| 国产精品丝袜视频| 蜜桃av乱码一区二区三区| 欧美大胆性生话| 久久婷婷成人综合色| 26uuu另类亚洲欧美日本老年| 中文字幕一二三区| 色女人在线视频| 国产成人精品一区二区三区四区| 美女精品视频一区| 日本少妇一级片| caoprom在线| av资源网一区| 欧美专区第一页| 色欲狠狠躁天天躁无码中文字幕 | 91欧美一区二区三区| 青草久久伊人| 老司机久久99久久精品播放免费| 亚洲网站在线看| 午夜两性免费视频| 激情视频在线观看| 国产精品一区二区久激情瑜伽| 欧美区在线播放| 欲求不满的岳中文字幕| 欧美1级2级| 精品日本美女福利在线观看| 久久久久久九九九九| 亚洲老妇色熟女老太| 国产一区二区在线电影| 性色av一区二区三区免费 | 国产高中女学生第一次| 尹人成人综合网| 精品一区二区三区四区在线| 可以免费在线看黄的网站| 免费黄色在线看| 懂色一区二区三区免费观看| 国产99久久精品一区二区永久免费 | 伊人网在线综合| 91蜜桃在线视频| 91美女片黄在线观看| 国产精品入口日韩视频大尺度| 日韩黄色免费观看| 天海翼亚洲一区二区三区| 欧美日韩和欧美的一区二区| 国产高清www| www.亚洲资源| 成人午夜在线免费| 国产精品私拍pans大尺度在线| 久久久久久亚洲av无码专区| 欧美午夜不卡| 在线观看国产精品91| 蜜臀av粉嫩av懂色av| 欧美黄页免费| 日韩欧美在线免费| 成人国产一区二区三区| 国产一二在线观看| 成人av在线播放网站| 成人国产亚洲精品a区天堂华泰| 日韩美女黄色片| 亚洲电影影音先锋| 国产一区二区三区丝袜| 女人裸体性做爰全过| 亚洲成a人片77777在线播放 | 天天干天天干天天干天天干天天干| 91精品国产66| 午夜精品123| 黄色录像特级片| 最近高清中文在线字幕在线观看| 91一区一区三区| 97人人干人人| 国产毛片在线视频| 毛片基地黄久久久久久天堂| 日本精品久久久久久久| 中文无码精品一区二区三区| 免费在线观看成人av| 午夜精品在线视频| 中文字幕 人妻熟女| 国产精品久久久亚洲一区| 欧美激情精品久久久| 久久国产波多野结衣| 第一会所sis001亚洲| 亚洲美女av电影| 特级西西人体wwwww| 超碰精品在线| 欧美第一区第二区| 年下总裁被打光屁股sp | 国产精品videossex撒尿| 亚洲成a天堂v人片| 免费人成自慰网站| 国产乱子精品一区二区在线观看| 亚洲成人网在线| 色哟哟无码精品一区二区三区| 欧美艳星介绍134位艳星| 久久久久久久久91| 日本特黄一级片| 久久精品国产亚洲aⅴ| 国产一区二区三区免费不卡| 免费观看黄色一级视频| 成人av动漫在线| 吴梦梦av在线| 中文字幕伦理免费在线视频| 日韩欧美一区二区三区久久| 日本美女视频网站| 亚洲欧洲日韩| 欧美精品videofree1080p| 中文无码av一区二区三区| 久久免费美女视频| 亚洲 欧美 日韩 国产综合 在线| 日本不良网站在线观看| 日韩欧美国产视频| 95视频在线观看| 亚洲激情中文| 成人精品在线观看| av电影在线观看| 色综合激情五月| 自拍偷拍21p| 香港久久久电影| 国产网站欧美日韩免费精品在线观看| 精品爆乳一区二区三区无码av| 91久久亚洲| 国产精品吊钟奶在线| 国产又粗又猛又爽又黄视频| 成人一区二区三区视频| 国产精品波多野结衣| 欧美一区二区三区婷婷| 中文综合在线观看| 在线观看不卡的av| 粉嫩一区二区三区在线看| 400部精品国偷自产在线观看 | 亚洲一区中文日韩| 亚洲午夜精品久久久久久人妖| 蜜桃成人精品| 日韩三区在线观看| 一级性生活毛片| 欧美午夜精彩| 国产精品视频久久久| 2017亚洲天堂1024| 欧美日韩国产系列| 亚洲男子天堂网| 麻豆精品国产免费| 日av在线不卡| 午夜精品三级视频福利| 99久久国产热无码精品免费| 综合色中文字幕| 免费av手机在线观看| 加勒比视频一区| 最近2019年好看中文字幕视频 | 国产丰满果冻videossex| 亚洲欧洲av在线| 一本色道久久加勒比精品| 黄色网址在线免费看| 在线播放一区二区精品视频| 欧美黑人极品猛少妇色xxxxx| 六月婷婷综合网| 久久综合视频网| 成年人视频在线免费| 综合视频一区| 97久久精品在线| 二区在线观看| 欧美日韩国产在线播放| 丰腴饱满的极品熟妇| 欧美日韩亚洲一区三区| 精品中文字幕一区| 2024最新电影在线免费观看| 精品国产不卡一区二区三区| 国产白丝一区二区三区| 噜噜噜久久亚洲精品国产品小说| 成人在线免费观看一区| 337p日本欧洲亚洲大胆鲁鲁| 日韩免费看网站| 看片网址国产福利av中文字幕| 国产精品综合久久| 久久国产亚洲精品无码| 欧美电影《睫毛膏》| 3344国产精品免费看| 97电影在线看视频| 精品国产凹凸成av人网站| 国产尤物在线视频| 亚洲三级在线免费| 日韩av.com| 国产美女一区| 强伦女教师2:伦理在线观看| 先锋影音国产精品| eeuss一区二区三区| 求av网址在线观看| 亚洲精品成人av| 国产精品久久久久久久妇| 国产精品久久一级| 亚洲国产综合视频| 国产美女在线观看一区| 日本999视频| 日韩一级免费| 久久99精品久久久久子伦| 永久免费观看精品视频| 久久成人在线视频| 精品女同一区二区三区| 亚洲一区二区精品3399| 永久免费观看片现看| 久久久99精品久久| 国产精品久久久毛片| 亚洲伦伦在线| 精品一二三四五区| 麻豆成人入口| 亚洲在线免费视频| 日本中文字幕中出在线| 少妇精69xxtheporn| 日中文字幕在线| 亚洲国产精品推荐| 黄色av网址在线| 日韩欧美色综合网站| 国产绳艺sm调教室论坛| 欧美三级电影精品| 正在播放亚洲精品| 在线日韩一区二区| 婷婷社区五月天| 国产蜜臀97一区二区三区| 日日干夜夜操s8| 久久夜色精品| 最近免费中文字幕中文高清百度| 国产精品毛片| 毛片在线视频播放| 亚洲视频播放| 北条麻妃在线观看| 99久久.com| 伊人久久av导航| 粉嫩的18在线观看极品精品| 国产999精品久久久| 中文在线а√天堂| 久久激情视频免费观看| 好男人www在线视频| 欧美zozozo| 青青艹在线观看| 欧美性xxxxxxxx| 国产香蕉在线视频| 欧美国产一区二区在线观看| 一级片视频免费看| 国产片一区二区| 亚洲一级片在线播放| 成人免费视频一区| 日韩精品人妻中文字幕有码 | 色综合视频在线| 欧美亚洲国产怡红院影院| 日本欧美www| 9191成人精品久久| 日韩人妻精品中文字幕| 一区二区三区欧美激情| 国产精品久久久久久久无码| 91视频免费播放| 日韩丰满少妇无码内射| 国产精品欧美一级免费| 九九精品视频免费| 亚洲成av人片一区二区梦乃| 香蕉影院在线观看| 欧美精品一卡两卡| 日本高清不卡码| 欧美日韩国产精选| 超碰福利在线观看| 亚洲精品中文字幕女同| 日本在线观看免费| 福利在线免费视频| 亚洲福利在线看| 手机福利小视频在线播放| 日韩精品看片| 久热精品在线视频| 黄网av在线| 另类色图亚洲色图| 8x8ⅹ拨牐拨牐拨牐在线观看| 欧美综合在线观看| 成年永久一区二区三区免费视频| 琪琪亚洲精品午夜在线| 成人日韩av| 国产美女在线精品免费观看| re久久精品视频| 日本公妇乱淫免费视频一区三区| 亚洲黄色录像| 亚洲 欧洲 日韩| 国产亚洲高清视频| 午夜激情影院在线观看| 91麻豆免费观看| 国产免费无码一区二区视频| 色婷婷av一区二区| 6080午夜伦理| 日韩一区二区三区三四区视频在线观看| 天堂成人在线| 精品中文字幕在线2019| 在线国产成人影院| 国产精品视频一区二区三区经| 91精品丝袜国产高跟在线| 日本中文不卡| 成人羞羞网站| 欧美黑人经典片免费观看 | 91看片破解版| 久久99久久久久久久久久久| 性chinese极品按摩| 成人av电影在线观看| 欧美黑人性猛交xxx| 一区二区欧美国产| 中文字幕无线码一区| 精品五月天久久| 久久av色综合| 7777精品久久久大香线蕉小说| 精品久久91| 99福利在线观看| 波多野结衣视频一区| 亚洲欧美小视频| 欧美日韩高清在线播放| 高清在线观看av| 国产成人精品久久二区二区| 欧美黄页免费| 亚洲成人网上| 欧美在线不卡| 男女激情无遮挡| 成人一区二区视频| 久久免费黄色网址| 欧美日韩精品在线播放| 亚洲黄色一级大片| 欧美另类交人妖| 日韩高清二区| 女女百合国产免费网站| 国内精品伊人久久久久av影院| 国产免费无码一区二区| 亚洲精品中文字幕在线观看| 亚洲精品视频在线观看免费视频| 日韩欧美国产高清| 影院在线观看全集免费观看| 97久久人人超碰caoprom欧美| 欧美aa国产视频| 又色又爽又黄18网站| 一区二区三区丝袜| 亚洲国产精品18久久久久久| 久久久久久久999| 老司机精品视频在线播放| 欧美日韩精品在线一区二区| 91亚洲精品久久久蜜桃网站| 国产精品男女视频| 日韩一区二区在线观看视频| 美女免费久久| 91丝袜脚交足在线播放| 亚洲性图久久| 日本黄色网址大全| 国内自拍亚洲| 日本一区二区在线免费播放| 亚洲精品动态| 日韩精品免费播放| 欧美国产精品v| 一区二区www| 欧美一级xxx| 色老头在线观看| 国产一区在线免费观看| 美女国产一区| 日韩av手机在线免费观看| 欧美一级免费观看| 午夜欧美激情| 日本精品一区二区三区不卡无字幕| 久久精品免费观看| 精品少妇久久久| 亚洲欧美另类自拍| 五月天色综合| 人人干视频在线| 国产福利一区在线| 男人的天堂一区| 少妇激情综合网| 国产乱论精品| 高清一区二区视频| 91麻豆国产福利在线观看| 特级西西444www大胆免费看| 久久国产精品视频| 亚洲国产网址| wwwxxx色| 欧美午夜精品理论片a级按摩| 激情影院在线| 天天综合狠狠精品| 免费中文字幕日韩欧美| 国产三级精品三级观看| 亚洲娇小xxxx欧美娇小| 国产亚洲欧美日韩精品一区二区三区| 日韩极品视频在线观看| 国产欧美精品日韩区二区麻豆天美| 成人激情四射网| 国产精品久久久久久久久免费看 | 久久综合色一综合色88| 国产欧美日韩综合精品一区二区三区| 国产91对白在线播放|