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

jQuery Discussion :

Orienter une image affichée et la fermer avec un clic


Sujet :

jQuery

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2012
    Messages : 121
    Points : 78
    Points
    78
    Par défaut Orienter une image affichée et la fermer avec un clic
    Bonjour

    J'ai "usurpé" du code et j'aimerais le modifier pour m’assurer que l'image qui apparaît (suite à une sélection) soit toujours affichée à la même position sur ma page. Actuellement (avec le reste de mon code) l'image s'affiche à un endroit inusité et j'ignore pourquoi....
    J'aimerais aussi pouvoir fermer l'image en cliquant dessus...

    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
    34
    35
    36
    37
    38
    39
    40
    <!DOCTYPE html>
    <html lang="en">
      <head>
        <link class="jsbin" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
    <script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
    <script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.0/jquery-ui.min.js"></script>
    <meta charset=utf-8 />
    <title>JS Bin</title>
    <!--[if IE]>
      <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
     
     
    <style>
      article, aside, figure, footer, header, hgroup, 
      menu, nav, section { display: block; }
    </style>
    </head>
    <body>
     <input type="file">
    <script>
    $("input").change(function(e) {
     
        for (var w = 0; w < e.originalEvent.srcElement.files.length; w++) {
     
            var file = e.originalEvent.srcElement.files[w];
     
            var img = document.createElement("img");
            var reader = new FileReader();
            reader.onload = function (e) {
                 img.src = reader.result
            }
            reader.readAsDataURL(file);
            $("input").after(img);
        }
    });
    	</script>	
     
      </body>
    </html>

    Merci

  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 122
    Points
    44 122
    Par défaut
    Bonjour,
    visiblement tu n'as pas choisi le plus compatible.

    Avec ceci cela devrait peut mieux le faire
    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
    $("input").change(function (e) {
        var i, file, fichiers = e.target.files;
     
        for (i = 0; file = fichiers[i]; i++) {
     
            var reader = new FileReader();
            reader.onload = function (e) {
                var oImg = $('<img>', {
                    'src': e.target.result,
                    'on': {
                        'click': function (event) {
                            alert('Photos cliqued!');
                        }
                    }
                })
     
                // c'est ici que tu choisi l'endroit
                // ou tu souhaites mettre ton image
                $("input").after(oImg);
     
            }
            reader.readAsDataURL(file);
        }
    });
    dans l'exemple il te suffit de mettre ce que tu souhaites dans la fonction sur le click, quant à la position d'affichage dans ta page il te suffit de l'ajuster.

    Peut être qu'une lecture de la Documentation te ferais du bien
    jQuery API, sans oublier la FAQ jQuery.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2012
    Messages : 121
    Points : 78
    Points
    78
    Par défaut
    Merci du fond du coeur

    Toutefois, j'ignore totalement ce que je dois faire pour "orienter" l'image!!!!
    Probablement une Noob question, mais je n'ai pas trouvé de réponse sur les différents forum.

    Le code, dans sa forme actuelle, fait en sorte qu'une foule d'images apparaissent.... soit à côté de chaque élément que j'ai inséré dans ma page

    Citation Envoyé par NoSmoking Voir le message
    // c'est ici que tu choisi l'endroit
    // ou tu souhaites mettre ton image
    $("input").after(oImg);

  4. #4
    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
    La manière de placer les images dans votre page dépend de vos codes CSS et HTML.

    Exemple : chargement d'images (une ou plusieurs à la fois) dans une division, chaque image est un "block" indépendant, disparition de l'image sur un "click".

    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    #divImg img { display: block; margin: 12px; }

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div>
        <input id="fileInput" type="file" accept="image/*" multiple>
    </div>
    <div id="divImg"></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
    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
    $( function(){ // forme abrégée de $(document).ready(function(){
     
        $( "#divImg" ).on( "click", "img", function(){
            $( this ).remove();
        });
     
        $( "#fileInput" ).on( "change", function( e ){
     
            var w = 0, 
                file, 
                img, 
                reader = new FileReader(),
                files = e.target.files,
                limite = files.length,
                lire = function(){
                    file = files[ w++ ];
     
                    img = document.createElement( "img" );
     
                    reader.onload = function( e ){
                        img.src = reader.result;
                        $( "#divImg" ).append( img );
                    };
     
                    reader.onloadend = function(){
                        if ( w < limite ){
                            lire();
                        }
                    };
     
                    reader.readAsDataURL( file );
               };
     
            if ( limite > 0 ){
                lire();
            }
     
        });
     
    });

    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.)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2012
    Messages : 121
    Points : 78
    Points
    78
    Par défaut
    Merci danielhagnoul et NoSmoking!!!

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/10/2014, 20h17
  2. Afficher une image codée en base 64 avec XSLT
    Par mansour67 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 05/03/2014, 14h58
  3. [PostgreSQL] Afficher une image stockée dans la base avec PHP / PDO / PostgresSQL
    Par genamiga dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 16/02/2011, 13h02
  4. [MySQL] afficher une image contenue dans un blob avec d'autres infos
    Par pakkun dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 28/06/2007, 17h08
  5. Réponses: 6
    Dernier message: 29/07/2005, 11h12

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