view source

JavaScript

document.title = '無数の色パネル';

var style = document.createElement('style');
style.innerText = 'html,body{overflow:hidden;cursor:none;}';
document.getElementsByTagName('head').item(0).appendChild(style);

var canvas = document.createElement('canvas');
var w = document.body.clientWidth;
var h = document.body.clientHeight;
var min = Math.min(w,h);
canvas.setAttribute('width',w);
canvas.setAttribute('height',h);
let demo = document.getElementById('demo');
demo.appendChild(canvas);

var ctx = canvas.getContext('2d');
var cx = w/2;
var cy = h/2;
var t = 0;
var max = 128;

function draw() {
  ctx.clearRect(0, 0, w, h);
  var iw = w/max;
  var ih = h/max;
  for(i=0;i<max;i++){
    for(j=0;j<max;j++){
      var ch = Math.floor(Math.random()*360);
      //var r = Math.floor(Math.random()*128)+128;
      //var g = Math.floor(Math.random()*128)+128;
      //var b = Math.floor(Math.random()*128)+128;
      var color = 'hsl('+ch+',100%,50%)';
      //var color = 'rgb('+r+','+g+','+b+')';
      ctx.fillStyle = color;
      ctx.fillRect(i*iw, j*ih, iw, ih);
    }
  }
}
draw();
setInterval(function(){
  draw();
},9);






document.oncontextmenu = function () {return false;}
function resize() {
  canvas.width = window.innerWidth;
  canvas.height = window.innerHeight;
  console.table({w:canvas.width, h:canvas.height});
  w = document.body.clientWidth;
  h = document.body.clientHeight;
  cx = w/2;
  cy = h/2;
}

window.onresize = resize;
window.addEventListener('click', function() {
  resize();
  document.body.requestFullscreen();
}, false );

document.addEventListener('fullscreenchange',function(e){
  resize();
});

CSS

HTML

ページのソースを表示 : Ctrl+U , DevTools : F12

view-source:https://hi0a.com/demo/-js/js-canvas-color-noize/

ABOUT

hi0a.com 「ひまアプリ」は無料で遊べるミニゲームや便利ツールを公開しています。

プログラミング言語の動作デモやWEBデザイン、ソースコード、フロントエンド等の開発者のための技術を公開しています。

必要な機能の関数をコピペ利用したり勉強に活用できます。

プログラムの動作サンプル結果は画面上部に出力表示されています。

環境:最新のブラウザ GoogleChrome / Windows / Android / iPhone 等の端末で動作確認しています。

画像素材や音素材は半分自作でフリー素材配布サイトも利用しています。LINK参照。

途中放置や実験状態、仕様変更、API廃止等で動かないページもあります。ご了承下さい。