Zataz
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ZatazArmy - Nous contrôlons tout</title>
<style>
body {
margin: 0;
background-color: #330000;
color: #FF0000;
font-family: 'Arial', sans-serif;
text-align: center;
overflow: hidden;
position: relative;
}
canvas {
display: block;
position: absolute;
top: 0;
left: 0;
}
.container {
position: relative;
z-index: 1;
padding: 20px;
animation: shake 0.1s infinite;
}
h1 {
font-size: 4em;
animation: flicker 1.5s infinite, glitch 0.5s infinite;
text-shadow: 0 0 10px #FF0000, 0 0 20px #FF0000, 0 0 30px #FF0000;
}
@keyframes flicker {
0%, 18%, 22%, 25%, 53%, 57%, 100% {
opacity: 1;
}
20%, 24%, 55% {
opacity: 0.5;
}
}
@keyframes glitch {
0%, 100% {
transform: translate(0);
}
20% {
transform: translate(-5px, 5px);
}
40% {
transform: translate(5px, -5px);
}
60% {
transform: translate(-5px, -5px);
}
80% {
transform: translate(5px, 5px);
}
}
p {
font-size: 1.5em;
margin: 20px 0;
text-shadow: 0 0 5px #FF0000;
animation: fadeInOut 3s infinite;
}
@keyframes fadeInOut {
0%, 100% {
opacity: 1;
}
50% {
opacity: 0.3;
}
}
.blinking-cursor {
font-size: 1.5em;
animation: blink 0.7s infinite;
}
@keyframes blink {
0%, 100% {
opacity: 1;
}
50% {
opacity: 0;
}
}
@keyframes shake {
0%, 100% {
transform: translateX(0);
}
25% {
transform: translateX(-5px);
}
50% {
transform: translateX(5px);
}
75% {
transform: translateX(-5px);
}
}
.moving-image {
position: absolute;
width: 100px;
height: auto;
}
</style>
</head>
<body>
<canvas id="canvas"></canvas>
<canvas id="canvas2"></canvas>
<div class="container">
<h1>ZatazArmy</h1>
<p>Nous contrôlons tout. Vos données, vos secrets, vos vies.</p>
<p>Nous sommes partout. Vous ne pouvez pas nous échapper.</p>
<p>Préparez-vous. Le chaos approche.</p>
<p class="blinking-cursor">_</p>
</div>
<script>
var canvas = document.getElementById('canvas'),
ctx = canvas.getContext('2d'),
canvas2 = document.getElementById('canvas2'),
ctx2 = canvas2.getContext('2d'),
cw = window.innerWidth,
ch = window.innerHeight,
charArr = ['0', '1'],
maxCharCount = 100,
fallingCharArr = [],
fontSize = 15,
maxColums = cw / fontSize;
canvas.width = canvas2.width = cw;
canvas.height = canvas2.height = ch;
function randomInt(min, max) {
return Math.floor(Math.random() * (max - min) + min);
}
function randomFloat(min, max) {
return Math.random() * (max - min) + min;
}
function Point(x, y) {
this.x = x;
this.y = y;
}
Point.prototype.draw = function (ctx) {
this.value = charArr[randomInt(0, charArr.length - 1)].toUpperCase();
this.speed = randomFloat(1, 5);
ctx2.fillStyle = "rgba(255,0,0,0.8)";
ctx2.font = fontSize + "px san-serif";
ctx2.fillText(this.value, this.x, this.y);
ctx.fillStyle = "#FF0000";
ctx.font = fontSize + "px san-serif";
ctx.fillText(this.value, this.x, this.y);
this.y += this.speed;
if (this.y > ch) {
this.y = randomFloat(-100, 0);
this.speed = randomFloat(20, 55);
}
}
for (var i = 0; i < maxColums; i++) {
fallingCharArr.push(new Point(i * fontSize, randomFloat(-500, 0)));
}
var update = function () {
ctx.fillStyle = "rgba(0,0,0,0.05)";
ctx.fillRect(0, 0, cw, ch);
ctx2.clearRect(0, 0, cw, ch);
var i = fallingCharArr.length;
while (i--) {
fallingCharArr[i].draw(ctx);
var v = fallingCharArr[i];
}
requestAnimationFrame(update);
}
update();
// Create multiple moving images
function createMovingImages(count) {
for (var i = 0; i < count; i++) {
var img = document.createElement('img');
img.src = 'https://a.top4top.io/p_3366byqrb1.png';
img.className = 'moving-image';
img.style.top = randomInt(0, ch) + 'px';
img.style.left = randomInt(0, cw) + 'px';
img.dataset.dx = randomFloat(-2, 2);
img.dataset.dy = randomFloat(-2, 2);
document.body.appendChild(img);
}
}
function moveImages() {
var images = document.querySelectorAll('.moving-image');
images.forEach(function(img) {
var rect = img.getBoundingClientRect();
var dx = parseFloat(img.dataset.dx);
var dy = parseFloat(img.dataset.dy);
var newLeft = rect.left + dx*3;
var newTop = rect.top + dy*3;
if (newLeft <= 0 || newLeft + rect.width >= cw) {
img.dataset.dx = -dx;
}
if (newTop <= 0 || newTop + rect.height >= ch) {
img.dataset.dy = -dy;
}
img.style.left = newLeft + 'px';
img.style.top = newTop + 'px';
});
requestAnimationFrame(moveImages);
}
createMovingImages(20); // Create 10 moving images
moveImages();
</script>
</body>
</html>