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 :

Créer une miniature d'une balise div


Sujet :

JavaScript

  1. #1
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut Créer une miniature d'une balise div
    Bonjour, je souhaiterais mettre en js une partie de mon site (une balise div) en miniature, es possible ?

    Par exemple je clique sur un bouton et sa m'affiche une miniature de ma page (au lieu d'une image) mais au format réduit, pour tout voir.

    Par contre je voudrais que l'aperçue soit en temps réel, par exemple si dans ma div j'ai un formulaire et j'écrit toto, sa doit afficher toto en temps réel.

    Je veut faire une copie de ma balise en temps réel et rajouter ceci un truc de style :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    div {
        -ms-transform: scale(0.25); /* IE 9 */
        -webkit-transform: scale(0.25); /* Chrome, Safari, Opera */
        transform: scale(0.25);
    }

    Pour faire une miniature.

    Merci pour votre aide.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 955
    Points : 44 103
    Points
    44 103
    Par défaut
    Bonjour,
    Par exemple je clique sur un bouton et sa m'affiche une miniature de ma page (au lieu d'une image) mais au format réduit, pour tout voir.
    Il te suffit d'affecter la classe "miniature" à ton conteneur en utilisant par exemple le javascript et la méthode classList.toggle.

    Par contre je voudrais que l'aperçue soit en temps réel, par exemple si dans ma div j'ai un formulaire et j'écrit toto, sa doit afficher toto en temps réel.
    Là je ne comprends pas

  3. #3
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut
    si dans ma div il une balise textarea, si j'écris toto dedans, dans la miniature il doit s'écrire toto en temps réel.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 955
    Points : 44 103
    Points
    44 103
    Par défaut
    Je pense que je viens de comprendre ce que tu souhaites

    Une TEXTAREA grandeur nature plus une en vignette qui se met à jour en fonction de ce qui est saisi dans la "grandeur nature".

    Il va te falloir passer pas du javascript quoiqu'il arrive, mais je n'en vois pas franchement l'utilité d'une telle mise en page.

  5. #5
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut
    C'était un exemple, la div contient d'autre chose.

    Il te suffit d'affecter la classe "miniature" à ton conteneur en utilisant par exemple le javascript et la méthode classList.toggle.
    Je comprend pas, pourrais tu me faire un exemple ?

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 955
    Points : 44 103
    Points
    44 103
    Par défaut
    Si ma supposition est correcte, création d'une vignette en plus de l'existant, ce que j'ai dit auparavant ne tiens plus réellement.

    Je te mets un exemple, incomplet, de ce que cela pourrait donner
    Code html : 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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <meta charset="UTF-8">
    <title>Création d'une vignette</title>
    <style>
    #conteneur,
    #miniature{
      box-sizing:border-box;
      float: left;
      text-align: center;
      width: 50%;
    }
    #conteneur > div,
    #miniature > div{
      border:1px solid #CCC;
      padding:1em;
    }
    textarea{
      resize:none;
      height:5em;
      width:20em;
    }
    #miniature > div{
      -webkit-transform: scale(0.5);
         -moz-transform: scale(0.5);
          -ms-transform: scale(0.5);
              transform: scale(0.5);
    }
    </style>
    </head>
    <body>
    <p><button>Ajout miniature</button></p>
    <div id="conteneur">
      <div>
        <h1>Titre conteneur</h1>
        <p><img src="http://www.developpez.net/template/images/logo.png" alt="logo DVP"></p>
        <p><textarea>Bonjour</textarea></p>
      </div>
    </div>
    <div id="miniature">
    </div>
    <script>
    var oBtn = document.getElementsByTagName('BUTTON')[0];
    oBtn.onclick = function(){
      var oSrc  = document.getElementById('conteneur'),
          oDest = document.getElementById('miniature'),
          oClone = oSrc.querySelectorAll('DIV')[0].cloneNode( true);
          oDest.appendChild( oClone);
    }
    </script>
    </body>
    </html>
    Il restera bien des choses à régler suivant la structure, mais je te le répète il te faudra utiliser le javascript.

  7. #7
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut
    Je veut que cette miniature s'actualise, si j'écrit dans le textarea, je veut voir les modification aparaitre dans ma miniature.

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 955
    Points : 44 103
    Points
    44 103
    Par défaut
    Cela je crois qu'on l'a bien compris, seulement sans structure réelle de la partie à mettre en vignette difficile de t'aider plus avant, pour le moment tu ne nous a toujours pas fournis une once de code !

    Dans le principe il te faut lier les actions des différentes TEXTAREA pour en copier la value de l'une dans l'autre et inversement.

    PS: je transfère sur le forum javascript, même si il y aura besoin de CSS

  9. #9
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut
    sa serait pour afficher une miniature d'une iframe, mais je veut pas actualiser l'iframe toute les 2secndes, se serait trop gourmand.

  10. #10
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Si la question est "peut-on prendre une capture d'une partie de l'écran en JavaScript", non ce n'est pas faisable pour des raisons de sécurité. Il y a bien quelques bricolages à base de canvas et de parcours du DOM mais rien de fidèle et de performant. Imagine que ton iframe pointe vers un site bancaire et qu'on se serve de cette capture pour noter les identifiants de connexion.
    One Web to rule them all

  11. #11
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut
    Non, se serait plus un clone ne ma div, mais rétrécie.

  12. #12
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 955
    Points : 44 103
    Points
    44 103
    Par défaut
    A quelle heure le brouillard va t-il se lever?

  13. #13
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut
    Il me semble qu'en Jquery sa existe.

  14. #14
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    A quelle heure le brouillard va t-il se lever?
    Citation Envoyé par sazearte Voir le message
    Il me semble qu'en Jquery sa existe.
    Le brouillard s'épaissit !

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  15. #15
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut
    merci pour votre aide.

  16. #16
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    [...] Je te mets un exemple, incomplet, de ce que cela pourrait donner : [...]
    Salut

    Je viens de tester ton code, il fonctionne bien sauf pour le contenu du textarea qui ne change jamais !

    Pourquoi, je ne sais pas.

    La seule solution que j'ai trouvée c'est de copier le texte. Ma version, en jQuery bien entendu.

    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #conteneur, #miniature {
      float: left;
      text-align: center;
      width: 50%;
    }
    #conteneur > div, #miniature > div {
      border: 1px solid #CCC;
      padding: 1em;
    }
    textarea {
      resize: none;
      height: 5em;
      width: 20em;
    }

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <p>
        <button id="btnAjout">Ajout miniature</button>
    </p>
    <div id="conteneur">
        <div>
            <h1>Titre conteneur</h1>
            <p>
                <img src="http://www.developpez.net/template/images/logo.png" alt="logo DVP">
            </p>
            <p>
                <textarea>Bonjour</textarea>
            </p>
        </div>
    </div>
    <div id="miniature"></div>

    Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $( function( ){
     
        $( "#btnAjout" ).on( "click", function(){
            var jObjClone = $( "#conteneur" ).clone( true, true );
     
            $( "#miniature" ).html( jObjClone.html() );
     
            $( "textarea", "#miniature" ).val( $( "textarea", "#conteneur" ).val() );
     
            $( "div", "#miniature" ).css( "transform", "scale( 0.50 )" );
        });
     
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  17. #17
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Pour la petite histoire, j'ai un peu cherché d'où venait ce souci avec la valeur du textarea, et j'ai déterré ça dans le bugtracker de firefox : https://bugzilla.mozilla.org/show_bug.cgi?id=230307

    Status: NEW
    Reported: 2004-01-07 08:16 PST by Martin Honnen
    One Web to rule them all

  18. #18
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    J'ai vu d'abord le problème en Vanilla JS, avec appendChild, c'est pour cette raison que j'ai testé une version jQuery.

    En cherchant avec Google, je vois que le problème est ancien et non résolu. Il y a même une rustine jQuery (https://github.com/spencertipping/jquery.fix.clone) qui ne fait rien d'autre que ce que j'ai fait, recopié le texte.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  19. #19
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 955
    Points : 44 103
    Points
    44 103
    Par défaut
    Citation Envoyé par danielhagnoul
    Je viens de tester ton code, il fonctionne bien sauf pour le contenu du textarea qui ne change jamais !

    Pourquoi, je ne sais pas.
    Simplement que l'exemple fournis est incomplet comme je l'ai précisé, pas envie de tout faire

    Concernant le BUG il suffit sur l'événement keyup des TEXTAREA de faire une copie de la value dans la defaultValue, mais dans son cas comme il y a liaison entre les différentes TEXTAREA il suffit de mettre une fonction de recopie de la value sur le keyup et de l'appeler au premier clonage.

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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