IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Animation mettre une distance entre DIV


Sujet :

JavaScript

  1. #1
    Membre régulier
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2021
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mars 2021
    Messages : 201
    Points : 92
    Points
    92
    Par défaut Animation mettre une distance entre DIV
    Bonjour,
    J'ai plusieurs div placées au milieu de ma page en position absolue, et chaque div se superpose sur l'autre avec un léger décalage. J'ai crée une petite animation avec gsap, pendant cette animation je voudrais que toutes ces div se positionnent harmonieusement de façon aléatoire sur la page.
    J'ai crée cette fonction que j'appelle dans ma timeline(gsap):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    function imgAleat() {
      const windowHeight = window.innerHeight;
      const windowWidth = window.innerWidth;
     
      const divs = document.querySelectorAll(".divImg");
      divs.forEach((div) => { 
        const left = entierAleatoire(0 + div.offsetWidth, windowWidth - div.offsetWidth);
        const top = entierAleatoire(0 + div.offsetHeight, windowHeight - div.offsetHeight);
     
        div.style.left = left + "px";
        div.style.top = top + "px";
     
        console.log(`hauteur : ${windowHeight} largeur: ${windowWidth}
                    left : ${left} top: ${top}
        `);
      });
    }
     
    tl.call(imgAleat);
    Tout marche bien mais les divs se chevauchent de façon aléatoire parfois, est ce que il serait possible de laisser une distance entre les divs pour que elle ne se chevauchent pas et de se placer harmonieusement dans la page de façon aléatoire ?
    merci pour votre aide

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 112
    Points
    44 112
    Par défaut
    Bonjour,
    Citation Envoyé par Matteo53
    Tout marche bien mais les divs se chevauchent de façon aléatoire parfois, est ce que il serait possible de laisser une distance entre les divs pour que elle ne se chevauchent pas et de se placer harmonieusement dans la page de façon aléatoire ?
    Harmonie et aléatoire sont pratiquement antinomiques

    Dans l'absolu il suffit de tester si un rectangle est superposé à un autre, çà c'est simple, et de le déplacer si c'est le cas, çà c'est autre chose, oui mais ...

    Mais avant de coder je dirais qu'il t'appartient de bien définir l'algorithme d'espacement qui va fatalement être confronté à divers problèmes, nombre d'éléments à espacer, espace disponible qui va diminuer en fonction du nombre etc ..., que fait-on si on n'y parvient pas.

    Il te faudrait peut-être poser ta question sur le Forum Algorithmes et structures de données, ils ont traité, avec brio, Rectangle maximum dans un nuage de points qui se rapproche de ta problématique.

  3. #3
    Membre régulier
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2021
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mars 2021
    Messages : 201
    Points : 92
    Points
    92
    Par défaut
    Bonsoir
    merci beaucoup pour vos conseils. Je vais faire différemment je trouve trop complexe, et surtout il faut tenir compte de la multitude de taille d'écrans.
    Bonne soirée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. faire varier une distance entre deux objets
    Par Neuropsy dans le forum VB.NET
    Réponses: 1
    Dernier message: 05/11/2009, 09h44
  2. [CSS] [FAQ] Comment mettre une bordure entre chaque lignes d'un tableau
    Par tzilliox dans le forum Contribuez
    Réponses: 0
    Dernier message: 12/10/2009, 11h37
  3. Mettre une variable entre quotes
    Par laurentibus dans le forum PL/SQL
    Réponses: 7
    Dernier message: 12/12/2008, 17h12
  4. [Affichage] Etablir une distance entre deux controls forms
    Par alavoler dans le forum Windows Forms
    Réponses: 1
    Dernier message: 23/05/2008, 11h38
  5. mettre une pause entre deux instructions
    Par christianf dans le forum C#
    Réponses: 3
    Dernier message: 21/02/2008, 14h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo