Canvas Grey Squares Random Background / Скрипты Canvas

Готовый скрипт Canvas

Готовый скрипт Canvas создающий эффект серого фона из квадратиков который меняется при обновлении страницы или клику по ней, простота в установке и использовании на сайте.

Установка фона Canvas Grey Squares Random Background

На странице с используемым эффектом фона canvas, перед закрывающим тегом </body> добавьте скрипт канвас. Эффект фона будет применён к тегу <body>.

<script>
var c = document.createElement( 'canvas' ),
 ctx = c.getContext( '2d' ),
 rows = cols = 36,
 gap = 1,
 grays = [
 [ 26, 29 ],
 [ 32, 37 ],
 [ 42, 50 ],
 [ 46, 56 ],
 [ 54, 66 ]
 ],
 sizes = [ 4, 9, 14 ],
 frequency = [ false, 30, 9 ],
 cw = ch = c.width = c.height = ( sizes[ 0 ] + gap ) * rows;

function random( max, min ) {
 var min = min || 0;
 return Math.random() * ( max - min ) + min;
}

function cell( x, y, size ) {
 var gray = Math.floor( random( grays.length ) ),
 fill = grays[ gray ][ 0 ],
 stroke = grays[ gray ][ 1 ];
 ctx.fillStyle = 'rgb(' + fill + ', ' + fill + ', ' + fill + ')';
 ctx.strokeStyle = 'rgb(' + stroke + ', ' + stroke + ', ' + stroke + ')';
 ctx.fillRect( x, y, size, size ); 
 ctx.strokeRect( x + 0.5, y + 0.5, size - 1, size - 1 );
}

function generate() {
 var store = [];
 
 ctx.fillStyle = 'rgb(18, 18, 18)';
 ctx.fillRect( 0, 0, cw, ch );
 
 for( var x = 0; x < cols; x ++ ){
 for( var y = 0; y < rows; y ++ ){
 cell( 
 ( x * sizes[ 0 ] ) + ( x * gap ), 
 ( y * sizes[ 0 ] ) + ( y * gap ), 
 sizes[ 0 ] 
 ); 
 }
 }
 
 for( var freq = 0; freq < frequency.length; freq++ ) {
 if( frequency[ freq ] ){
 for( var i = 0; i < frequency[ freq ]; ) {
 var canDraw = true,
 sizeNew = sizes[ freq ],
 pad = Math.ceil( ( sizeNew / cw ) * rows );
 xNew = Math.floor( random( 1, cols - pad ) ) * ( ch / cols ),
 yNew = Math.floor( random( 1, rows - pad ) ) * ( cw / rows ), 
 storeLength = store.length;
 if( storeLength ) {
 for( var j = 0; j < storeLength; j++ ) {
 var storeCell = store[ j ];
 if( !(
 xNew + sizeNew + ( cw / cols ) < storeCell.x ||
 yNew + sizeNew + ( ch / rows ) < storeCell.y ||
 xNew > storeCell.x + storeCell.size + ( cw / cols ) ||
 yNew > storeCell.y + storeCell.size + ( ch / rows )
 ) ) {
 canDraw = false;
 break;
 }
 } 
 }
 if( canDraw ) {
 cell( xNew, yNew, sizeNew );
 store.push( { x: xNew, y: yNew, size: sizeNew } );
 i++;
 }
 }
 }
 }
 
 document.body.style.background = 'url(' + c.toDataURL() + ')';
}

window.addEventListener( 'click', generate ); // - Изменять при клике
generate();
</script>

Применение меняющегося фона

Фон будет меняться при обновлении страницы.

Нажмите на значёк Кнопка выполнения кода в редакторе для показа результата.

Применение меняющегося фона при клике

Фон будет меняться при обновлении страницы, а так же при клике по ней. Для примера щёлкните мышкой по полю с фоном канвас.

Нажмите на значёк Кнопка выполнения кода в редакторе для показа результата.


Рейтинг: 4.0/5 из 4



Добавлено Автор Ник Источник Просмотров Комментариев Теги
10-09-2015 Михаил Меренков aTmpl © 505 0 canvas script, effect background, effect random, скрипт канвас, эффект для фона