Живой фон для сайта с помощью JavaScript Анимированный фон для сайта с помощью JavaScript

Еще один красивый фон для сайта, и в данном уроке мы рассмотрим еще один замечательный пример реализации объемного фона. Идея состоит в построении сетки из кубиков, которые будут двигаться в бесконечном цикле, при этом постепенно изменяя угол вращение и блика на них, что будет создавать масштабный эффект, такой эффект отлично подойдет для портфолио или заглушки для сайта. Такой фон явно не оставит равнодушным Ваших посетителей.

 

ДЕМО
ИСХОДНИКИ

 

Такой эффект реализован исключительно с помощью JS, по этому не требует дополнительных изображений или дополнительных тяжелых библиотек. Мы будем использовать развивающуюся технологию в веб-дизайне, а именно WebGLRenderer:

JavaScript

var stageWidth = 1200;
var stageHeight = 600;
var xRows = 25;
var zRows = 25;
var cubeSize = 600;
var cubeGap = 200;
var cubeRow = cubeSize + cubeGap;

var container = document.createElement('div');
document.body.appendChild( container );

var camera = new THREE.PerspectiveCamera(55, stageWidth/stageHeight, 1, 20000);
camera.position.y = 5000;
camera.lookAt( new THREE.Vector3(0,0,0) );

var scene = new THREE.Scene();
scene.fog = new THREE.Fog( 0x000000, 5000, 10000 );

var pointLight = new THREE.PointLight(0xFF4040);
pointLight.position.x = 0;
pointLight.position.y = 1800;
pointLight.position.z = -1800;
scene.add(pointLight);

var pointLight = new THREE.PointLight(0xc0c0f0);
pointLight.position.x = 0;
pointLight.position.y = 800;
pointLight.position.z = 1000;
scene.add(pointLight);*/

group = new THREE.Object3D();
scene.add( group );

var cubes = [];

var halfXRows = (cubeRow * -xRows / 2);
var halfZRows = (cubeRow * -zRows / 2);

for (var x = 0; x < xRows; x++) {
cubes[x] = []
for (var z = 0; z < zRows; z++) {
var cubeHeight = 100 + Math.random() * 700;
cubeHeight = 10 + (Math.sin(x / xRows * Math.PI) + Math.sin(z / zRows * Math.PI)) * 200 + Math.random() * 150;
var geometry = new THREE.BoxGeometry(cubeSize, cubeHeight, cubeSize);

var colours = [
0x4444ff, 0x4477ff, 0x7744ff, 0xff8080
];
var material = new THREE.MeshPhongMaterial( {
ambient: 0x030303,
color: 0x4444ff,
specular: 0xffffff,
shininess: 10, //~~(Math.random() * 200),
shading: THREE.SmoothShading
} )

var cube = new THREE.Mesh(geometry, material);
cube.position.x = halfXRows + x * cubeRow;
cube.position.y = cubeHeight / 2;
cube.position.z = (cubeRow * -zRows / 2) + z * cubeRow;
cube.height = cubeHeight;
group.add(cube);
cubes[x][z] = cube;

}
}

var renderer = new THREE.WebGLRenderer();
renderer.setSize(stageWidth, stageHeight);
container.appendChild( renderer.domElement );

var out = document.createElement("div")
container.appendChild( out );

var grid = { x: 0, z: 0};
var position = { x: 0, y: 0, z: 0};

function checkRow() {

Данный фон легко поддается манипуляциям даже без специальных знаний программирования, по этому Вы сможете получить желаемый результат приложим минимум усилий.

Вот и все. Готово!


Top

🔖 Выбор по тегам ×

💌 Написать сообщение ×

Все поля обязательны для заполнения!