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 :

Connaître la taille d'un bloc en temps réel


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Pour le plaisir
    Inscrit en
    Novembre 2012
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pour le plaisir
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2012
    Messages : 178
    Par défaut Connaître la taille d'un bloc en temps réel
    bonjour
    actuellement je fait ça pour changer mon display grid en block en fonction de la taille.
    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #contentAu {
      display: grid;	
      grid-gap: 2px;
      grid-auto-flow: column;
      margin: auto;
      box-sizing: border-box;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     const carouselAu = document.getElementById("carouselAu"),
     contentAu = document.getElementById("contentAu"),
     nextAu = document.getElementById("nextAu"),
     prevAu = document.getElementById("prevAu");
     
       if (contentAu.scrollWidth == carouselAu.offsetWidth){
    	 contentAu.style.display = "block"; 
       }
    par contre si on fait a l'arrache avec le partage de 2 fenêtre windows ça ne fonctionne pas...je suis obliger de refresh la page pour que les valeur change.
    il y a un moyen pour savoir la taille sans refresh ?

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre confirmé
    Homme Profil pro
    Pour le plaisir
    Inscrit en
    Novembre 2012
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pour le plaisir
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2012
    Messages : 178
    Par défaut
    merci
    j'avais trouver ça... je suis pas loin mais ça merde
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    function resizeWindow(oEvent) {
        contentAu.style.display = "grid";
        var newWidthcontau = contentAu.scrollWidth;
        var newWidthcarau = carouselAu.offsetWidth;
        var newWidth = window.innerWidth;
        console.log(newWidthcontau);
        console.log(newWidthcarau);
        if (window['oTailleOld'].width == null || window['oTailleOld'].width != newWidth) {
            if (newWidthcontau == newWidthcarau) {
                contentAu.style.display = "block";
                nextAu.style.display = "none";
            }
            else {
                contentAu.style.display = "grid";
                nextAu.style.display = "flex";
            }
        }
        window['oTailleOld'] = {
            widthcontau: newWidthcontau,
            widthcarau: newWidthcarau,
            width: newWidth
        };
    }
    //fct 
    window['oTailleOld'] = {
        width: null,
        widthcontau: null,
        widthcarau: null
    };
    document.addEventListener('DOMContentLoaded', function() {
        window.addEventListener('resize', resizeWindow);
        resizeWindow();
    });
    par contre je comprend pas les newWidthcarau et newWidthcarau change bien en fonction de la fenêtre mais elles sont toujours égal.
    si je refresh la page elle sont différent

    EDIT : enfin trouvé... pour ce que ça intéresse il faut mettre en le contenu du div en display grid avant la lecture.

  4. #4
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 498
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 498
    Par défaut
    hellow, pourquoi ne pas passer par le getBoundingClientRect() (en JS) developer.mozilla.org/fr/docs/Web/API/Element/getBoundingClientRect
    ou bien avec le @container query (en css) developer.mozilla.org/en-US/docs/Web/CSS/@container ?
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 213
    Par défaut
    Bonjour,
    il eut été bon de fournir la structure HTML pour ne pas avoir à patauger dans le vague !

    Il existe également une solution tout à fait intéressante qui utilise l'API Resize Observer, cela permet d'alléger pas mal le code sur le resize.

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

Discussions similaires

  1. C# : Taille d'un fichier en temps réel ?
    Par petard14 dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 11/03/2008, 17h06
  2. [Drag'n'Drop]Taille totale du document en temps réel
    Par narnou dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 16/05/2006, 20h32
  3. Réponses: 2
    Dernier message: 14/09/2005, 23h11
  4. Réponses: 3
    Dernier message: 28/06/2005, 09h07
  5. [Débutant][JLabel] Connaître la taille du texte
    Par Herisson_f dans le forum Composants
    Réponses: 8
    Dernier message: 04/05/2005, 10h53

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