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�ation d'une lightbox en javascript


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    D�veloppeur multim�dia
    Inscrit en
    Juin 2015
    Messages
    50
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur multim�dia
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2015
    Messages : 50
    Par d�faut Cr�ation d'une lightbox en javascript
    Bonjour � toutes et � tous,

    Je suis d�butant en javaScript et pour m'exercer (dans le but aussi de personnaliser via css), j'ai commenc� � cr�er ma propre lightbox en javaScript
    et si elle fonctionne, je ne comprends pas comment g�rer l'�v�nement sur les fl�ches de navigation (pour passer d'une image � l'autre)
    est-ce que quelqu'un aurait une piste ?
    �a serait tellement cool, je suis un peu frustr� d'en rester l�
    merci � tout le monde
    Cyril

    ici je vous mets le code javascript (c'est une lightbox toute simple et basique)
    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
    41
    42
    43
    44
    45
    46
    47
    48
    var links = document.getElementsByClassName('lightbox');
        linksLen = links.length;
     
     
    for (var i = 0 ; i < linksLen ; i++) {
     
        links[i].addEventListener('click', function(e) {
            e.preventDefault(); // On bloque la redirection
    	        // On appelle notre fonction pour afficher les images
            // currentTarget est utilisé pour cibler le lien et non l'image
            displayImg(e.currentTarget);
        }, false);
     
    }
     
    function displayImg(link) {
     
        var img = new Image(),
        overlay = document.getElementById('overlay');
     
     
        img.addEventListener('load', function() {
     
        // creation deux éléments contenant les flèches de navigation	 
    	var prev = document.createElement('a');
    	prev.id = 'llbox-nav-prev';
    	var next = document.createElement('a');
    	next.id = 'llbox-nav-next'; 	 
     
    	overlay.innerHTML = '';
    	overlay.appendChild(img);
    	overlay.appendChild(next); 
    	overlay.appendChild(prev);
     
        }, false);
     
    	img.style.maxHeight = '75%';
    	img.style.maxWidth = '75%';
        img.src = link.href;
     
    	overlay.style.display = 'block';
     
    }
     
    document.getElementById('overlay').addEventListener('click', function(e) {
        // currentTarget est utilisé pour cibler l'overlay et non l'image
        e.currentTarget.style.display = 'none';
    }, false);

  2. #2
    Mod�rateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par d�faut
    Bonjour,
    tu cr�es ta "lightbox" et tu veux afficher � l'int�rieur une succession d'images ?

    Dans le principe il te faut dans ta "lightbox"
    � une fleche +
    � une fleche -
    � une croix close
    � un conteneur pour recevoir l'image

    Les actions
    � sur fl�che + : chargement image suivante dans le conteneur
    � sur fl�che + : chargement image pr�c�dente dans le conteneur
    � sur croix close : fermeture "lightbox"

    voil� pour un principe de base, il y en a d'autres.

  3. #3
    Membre averti
    Homme Profil pro
    D�veloppeur multim�dia
    Inscrit en
    Juin 2015
    Messages
    50
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur multim�dia
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2015
    Messages : 50
    Par d�faut merci c'est r�solu
    Merci noSmoking pour ta r�ponse

    Il me manquait un �l�ment de fermeture bien cibl�.

    Et du coup, je suis parvenu � r�soudre cette ligntbox

    trop cool merci

    et pour info je mets le code ici

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    var links = document.querySelectorAll('.lightbox');
        linksLen = links.length;
     
        // on numérote chaque image pour la navigation
    for (var i = 0; i < linksLen; i++) {
    	links[i].id = i;
    }
     
     
    for (var i = 0 ; i < linksLen ; i++) {
     
        links[i].addEventListener('click', function(e) {
            e.preventDefault(); // On bloque la redirection
    	        // On appelle notre fonction pour afficher les images
            // currentTarget est utilisé pour cibler le lien et non l'image
            displayImg(e.currentTarget);
        }, false);
     
    }
     
    function displayImg(link) {
     
     
        var img = new Image(),
        overlay = document.getElementById('overlay');
     
     
        img.addEventListener('load', function() {
     
        // creation deux éléments contenant les flèches de navigation	 
    	var prev = document.createElement('span');
    	prev.id = 'llbox-nav-prev';
    	var next = document.createElement('span');
    	next.id = 'llbox-nav-next'; 
     
    	// element de fermeture
    	var close = document.createElement('span');
    	close.id = 'llbox-close';
     
    	overlay.innerHTML = '';
    	overlay.appendChild(img);
    	overlay.appendChild(next); 
    	overlay.appendChild(prev);
    	overlay.appendChild(close);
     
    	// clique sur la flèche gauche pour image précédente
    	prev.addEventListener('click', function(e) {
    		x = link.getAttribute('id');
     
    		newlink = document.getElementById(x-1);
    		displayImg(newlink);	
     
    	}, false);
     
    	// clique sur la flèche droite pour image suivante
    	next.addEventListener('click', function(e) {
    		y = link.getAttribute('id');
    		position = parseInt(y);
    		newlink = document.getElementById(position+1);
     
    		displayImg(newlink);	
     
    	}, false);
     
    	// pour fermer le conteneur
    	close.addEventListener('click', function(e) {
     
    		document.getElementById('overlay').style.display = 'none';
     
    	}, false);
     
     
     }, false);
     
    	img.style.maxHeight = '75%';
    	img.style.maxWidth = '75%';
        img.src = link.href;
     
    	overlay.style.display = 'block'
     
     
     
    }

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Cr�ation d'une carte r�seau en temps r�el (Javascript/php/Json/AJax)
    Par hermally dans le forum G�n�ral Conception Web
    R�ponses: 0
    Dernier message: 31/03/2015, 11h28
  2. javascript : cr�ation d'une boucle "for"
    Par Ekinea dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 07/08/2009, 13h20
  3. R�ponses: 1
    Dernier message: 26/08/2007, 22h21
  4. [BES] Cr�ation d'une variable d'environnement
    Par NGI80 dans le forum Autres
    R�ponses: 2
    Dernier message: 17/10/2002, 07h31

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