De la neige sur votre site web avec JavaScript !

Code JavaScript « modernisé »

a marqué ce sujet comme résolu.

Bonjour les zestes.

Je voulais rédiger un billet traitant du sujet, mais je n’en n’ai plus envie.
L’idée était de reprendre ce code pour le moderniser et le rendre conforme aux bonnes pratiques.
Si quelqu’un le souhaite, il peut reprendre/modifier le code et rédiger un billet dessus.

Voici le code actuel :

'use strict';

const max_width   =  window.innerWidth  - 30;
const max_height  =  window.innerHeight - 20;

const max_flocons = 9;
const TWO_PI = 2 * Math.PI;

const img_flocon = 'flocon.png';


function Flocon() {
    this.y = Math.random() * max_height;
    this.vy = 0.6 + Math.random();

    this.remonter = function() {
        this.y = -20;
        this.vy = 0.6 + Math.random();
        this.id_html.src = img_flocon;

        this.stl.left = Math.random() * max_width + 'px';
    };

    // Élement HTML associé au flocon
    this.id_html = document.createElement('img');

    this.id_html.src = img_flocon;
    this.id_html.style.position = 'absolute';

    this.stl = this.id_html.style;

    this.stl.top = this.y + 'px';
    this.stl.left = Math.random() * max_width + 'px';

    document.body.appendChild(this.id_html);
}


let flocons;

document.addEventListener('DOMContentLoaded', () => {
    flocons = Array(max_flocons).fill(0).map(e => new Flocon());
    window.requestAnimationFrame(neige);
});



function neige() {
    flocons.forEach(flocon => {
        if (flocon.y >= max_height) {
            flocon.remonter();
        }
        else {
            flocon.y += flocon.vy;
        }

        flocon.stl.top = flocon.y + 'px';
    });

    window.requestAnimationFrame(neige);
}

Le code est-il conforme aux règles de bonnes pratiques sachant que j’ai tenu compte des remarques de ce sujet ?

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte