首頁 web前端 js教程 js隨機顏色程式碼的多種實作方式_javascript技巧

js隨機顏色程式碼的多種實作方式_javascript技巧

May 16, 2016 pm 05:35 PM
js 隨機 顏色

JS隨機顏色有很多地方要用到:例如大家看到很多標籤連接都是五顏六色。那就需要到這個了。以下開始:      

方法思路總共有二。 一是準備一組漂亮的候選顏色,二是隨機產生顏色

實作1

複製程式碼 程式碼如下:

var getRandom)

  return  '#'    
    (function(color){   
    return (color =  '0123456789abcrandf.Math      && (color .length == 6) ?  color : arguments.callee(color);   
  })('');   
}

隨機產生6個字元然後再串產生6個字元然後再串產生6個字元然後再串產生6個字元然後再串產生6個字元閉包呼叫自身與三元運算子讓程式變得內斂,初心者應該好好學習這種寫法。
實現2

複製程式碼 程式碼如下:
var getRandomor = function()   return (function(m,s,c){   
    return (c ? arguments.callee(m,s,c-1) : '#')       * 16)]   
  })(Math,'0123456789abcdef',5)   
}


把Math對象,用於產生hex顏色值的字串提取出來,並利用第三個參數來判斷是否還繼續呼叫自身。

實現3

複製程式碼

程式碼如下:以下為引用的內容:
Array.prototype.map = function(fn, thisObj) {

  var scope = thisObj || window;   var a = [];

  for ( var i=0, j=this.length; i     a.push( fn.call(scope, this[i], i, this));

  }
  return a;
};
var getRandomColor = function(){
  return '#' ' 0123456789abcdef'.split('').map(function(v,i,a){
    return i>5 ? null : a[Math.floor(Math.random()*16)] }).join( '');
}


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

實作4



複製程式碼

程式碼如下:以下為引用的內容:
var getRandomColor = function(){

  return '#' Math.floor(Math.random()*16777215).toString(16); }

這個實作非常逆天,雖然有點小bug。我們知道hex顏色值是從#000000到#ffffff,後面那六位數是16進位數,相當於「0x000000」到「0xffffff」。這實現的想法是將hex的最大值ffffff先轉換為10進制,進行random後再轉換回16進制。我們來看看,如何得到16777215 這個數值的。



複製程式碼
程式碼如下:以下為引用的內容:

hex的最大





實作5



複製程式碼
程式碼如下:以下為引用的內容:
var getRandomColor = function(){

  return '#' (Math.random()*0xffffff}


基本上實現4的改進,利用左移運算子把0xffffff轉換為整數。這樣就不用記16777215了。由於左移運算子的優先權比不上乘號,因此隨機後再左移,連Math.floor也不用了。

實作6

複製程式碼 程式碼如下:

以下為引用的內容:

var getRandomColor = function(){

  return '#' (function(h){
    return new Array(7-h.length).join("0") h
  })((Math.random()*0x1000000}


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

實作7

複製程式碼 程式碼如下:

以下為引用的內容:

var getRandomColor = function(){

  return '#' ('00000' (Math.random()*0x1000000}


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

實戰一下:

複製程式碼 程式碼如下:

以下为引用的内容:



 
   
    初级饼图
   
   
   
    初级2324234饼图
 
 
   

初级23232饼图


   

 

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1675
14
CakePHP 教程
1429
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
建議:優秀JS開源人臉偵測辨識項目 建議:優秀JS開源人臉偵測辨識項目 Apr 03, 2024 am 11:55 AM

人臉偵測辨識技術已經是一個比較成熟且應用廣泛的技術。而目前最廣泛的網路應用語言非JS莫屬,在Web前端實現人臉偵測辨識相比後端的人臉辨識有優勢也有弱勢。優點包括減少網路互動、即時識別,大大縮短了使用者等待時間,提高了使用者體驗;弱勢是:受到模型大小限制,其中準確率也有限。如何在web端使用js實現人臉偵測呢?為了實現Web端人臉識別,需要熟悉相關的程式語言和技術,如JavaScript、HTML、CSS、WebRTC等。同時也需要掌握相關的電腦視覺和人工智慧技術。值得注意的是,由於Web端的計

如何使用PHP和JS創建股票蠟燭圖 如何使用PHP和JS創建股票蠟燭圖 Dec 17, 2023 am 08:08 AM

如何使用PHP和JS創建股票蠟燭圖股票蠟燭圖是股票市場中常見的技術分析圖形,透過繪製股票的開盤價、收盤價、最高價和最低價等數據,幫助投資者更直觀地了解股票的價格波動情形。本文將教你如何使用PHP和JS創建股票蠟燭圖,並附上具體的程式碼範例。一、準備工作在開始之前,我們需要準備以下環境:1.一台運行PHP的伺服器2.一個支援HTML5和Canvas的瀏覽器3

股票分析必備工具:學習PHP和JS繪製蠟燭圖的步驟 股票分析必備工具:學習PHP和JS繪製蠟燭圖的步驟 Dec 17, 2023 pm 06:55 PM

股票分析必備工具:學習PHP和JS繪製蠟燭圖的步驟,需要具體程式碼範例隨著網路和科技的快速發展,股票交易已成為許多投資者的重要途徑之一。而股票分析是投資人決策的重要一環,其中蠟燭圖被廣泛應用於技術分析。學習如何使用PHP和JS繪製蠟燭圖將為投資者提供更多直觀的信息,幫助他們更好地做出決策。蠟燭圖是一種以蠟燭形狀來展示股票價格的技術圖表。它展示了股票價格的

如何變更Windows 10工作列的顏色 如何變更Windows 10工作列的顏色 Jan 01, 2024 pm 09:05 PM

win10工作列顏色修改起來非常簡單,但是很多用戶發現設定不了,其實非常的簡單,只要在電腦的個人化裡選擇自己喜愛的顏色就可以了,要是改變不了顏色的注意詳細的設定哦。 win10工作列顏色怎麼改第一步:右鍵桌面-點選個人化第二步:顏色區域自訂第三步:選擇喜歡的顏色PS:如果你無法改變顏色,可以點選顏色->選擇顏色->自訂->預設windows模式,選擇深色即可。

vivo全新X100系列記憶體、色彩曝光:全系12+256GB起步 vivo全新X100系列記憶體、色彩曝光:全系12+256GB起步 May 06, 2024 pm 03:58 PM

5月6日消息,今天vivo官方宣布,全新的vivoX100系列將在5月13日19:00正式發布。據了解,此次發表會預計將發表vivoX100s、vivoX100sPro、vivoX100Ultra三款機型,以及vivo自研影像品牌BlueImage藍圖影像技術。數位部落客「數位閒聊站」今天也放出了這三款機型的官方渲染圖、內存規格及配色等,其中X100s採用了直屏設計,而X100sPro和X100Ultra則是曲屏設計。部落客透露,vivoX100s共有黑、鈦、青、白四種配色,記憶體規格

PHP與JS開發技巧:掌握繪製股票蠟燭圖的方法 PHP與JS開發技巧:掌握繪製股票蠟燭圖的方法 Dec 18, 2023 pm 03:39 PM

隨著網路金融的快速發展,股票投資已經成為了越來越多人的選擇。而在股票交易中,蠟燭圖是常用的技術分析方法,它能夠顯示股票價格的變動趨勢,幫助投資人做出更精準的決策。本文將透過介紹PHP和JS的開發技巧,帶領讀者了解如何繪製股票蠟燭圖,並提供具體的程式碼範例。一、了解股票蠟燭圖在介紹如何繪製股票蠟燭圖之前,我們首先需要先了解什麼是蠟燭圖。蠟燭圖是由日本人

js和vue的關係 js和vue的關係 Mar 11, 2024 pm 05:21 PM

js和vue的關係:1、JS作為Web開發基石;2、Vue.js作為前端框架的崛起;3、JS與Vue的互補關係;4、JS與Vue的實踐應用。

WPS文件表格顏色怎麼設定你知道嗎 WPS文件表格顏色怎麼設定你知道嗎 Mar 20, 2024 am 08:19 AM

我們在看到別人的WPS文件中表格顏色做出來的效果五顏六色,十分美觀;而自己只有單調的黑色。如果過給表格填充顏色,我相信很多同學都會。但是,如果要在WPS文件中國設置表格的顏色的話,一定有不少同學會覺得燒腦!今天,我們來學習一下關於如何設定WPS文件表格的顏色。我整理了一份文檔,希望對大家有幫助。步驟如下:1、我們需要在WPS文件中繪製一個表格,在要修改線條顏色的表格中點選滑鼠右鍵。 2、接著,用滑鼠在表格上點選【滑鼠右鍵】;在彈出的選單中,我們找到【邊框和底紋】。 3.此時,會打開【邊框和底紋】對

See all articles