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 :

Créer état actif (cliqué) sur une liste de miniatures


Sujet :

jQuery

  1. #1
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2007
    Messages : 38
    Par défaut Créer état actif (cliqué) sur une liste de miniatures
    Bonjour à tous,

    Je sais que c'est un sujet assez récurrent mais je n'ai pour le moment pas du tout réussi à appliquer "correctement" un état actif (cliqué) sur un élément li en js.

    La structure html :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div class="thumb-box">
        <ul id="mycarousel" class="jcarousel">
            <li><a onclick="doit(1)"><img src="data/images/thumb-1.jpg" alt="" /><span id="hoverThumb" class="hoverThumb-1"><img src="data/images/thumb-1-over.jpg" alt="" /></span></a></li>
            <li><a onclick="doit(2)"><img src="data/images/thumb-1.jpg" alt="" /><span id="hoverThumb" class="hoverThumb-2"><img src="data/images/thumb-1-over.jpg" alt="" /></span></a></li>
        </ul>
    </div>

    Au hover sur les <li> je change l'opacité de <span id="hoverThumb"> pour la superposer à la précédente.

    et le script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function doit(var1)
    {
        $(".hoverThumb-"+var1).css({'opacity' : '1'});
    }
    Je me rends compte que je m'y prends très mal si quelqu'un pouvait me donner une piste de recherche ?

    Merci par avance,
    Bonne journée.

  2. #2
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2007
    Messages : 38
    Par défaut
    Je suis arrivé à mes fins mais je ne sais pas si c'est très optimisé.
    Du coup je lance une boucle for qui passe l'opacité à 0 sur l'ensemble des miniatures puis-je passe l'opacité à 1 sur les miniature cliquée.

    Si quelqu'un voit comment optimiser cela je suis preneur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function doit(var1)
    {
        for(i=0; i<=30; i++)
        {
            $(".hoverThumb-"+i).css({'-moz-opacity':'0', 'opacity' : '0'});
        }
        $(".hoverThumb-"+var1).css({'-moz-opacity':'1', 'opacity' : '1'});
    }
    Bonne fin de journée.

  3. #3
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2007
    Messages : 38
    Par défaut
    J'ai crié victoire un peu trop tôt car une fois l'un des éléments de la liste cliqué les hover ne marchent plus...

  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 : 74
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Exemple (il suffit de copier-coller pour tester, voir les commentaires dans le code) :

    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
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    <!DOCTYPE html>
    <html lang="fr" dir="ltr">
    <head>
    	<meta charset="utf-8">
    	<meta name="viewport" content="initial-scale=1.0">
    	<meta name="author" content="Daniel Hagnoul">
    	<title>Forum jQuery</title>
    	<script src="http://cdnjs.cloudflare.com/ajax/libs/headjs/0.99/head.min.js"></script>
    	<script>
    		"use strict";
     
    		head.js( 
    			"http://d3js.org/d3.v3.min.js",
    			//"http://code.jquery.com/jquery-2.0.3.min.js",
    			"http://code.jquery.com/jquery-2.1.0-beta1.js",
    			"http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/i18n/jquery-ui-i18n.min.js",
    			"http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js",
    			"http://danielhagnoul.developpez.com/lib/dvjh/d3Base.js", function(){
     
    $( function(){
     
    	/*
    	 * Toutes les images ayant la classe "hoverThumb" dans
    	 * l'élément ayant l'ID "mycarousel".
    	 */
    	var jObjImgs = $( "img.hoverThumb", "#mycarousel" );
     
    	/*
    	 * Lors d'un clic sur un élément "li" contenu dans 
    	 * l'élément ayant l'ID "mycarousel".
    	 */
    	$( "#mycarousel > li" ).on( "click", function(){
    		/*
    		 * L'image ayant la classe "hoverThumb" dans
    		 * l'élément this.
    		 */
    	    var jObjImg = $( "img.hoverThumb", this );
     
    	    /*
    	     * Pour toutes les images sauf (not) celle en cours de traitement
    	     */
    	    jObjImgs.not( jObjImg ).fadeOut( 800 );
     
    	    /*
    	     * Pour l'image traitée
    	     */
    	    jObjImg.fadeIn( 800 );
    	});
     
    });
     
    $( window ).load( function(){
     
     
    });
     
    		});
    	</script>
    	<link href='http://fonts.googleapis.com/css?family=Sofia|Ubuntu:400|Kreon'>
    	<link rel="stylesheet" href="http://danielhagnoul.developpez.com/styles/dvjhRemBase.css">
    	<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/themes/sunny/jquery-ui.min.css">
    	<style>
    		/* TEST -- Nota bene : ici 1 rem est égal à 10 px, voir dvjhRemBase.css */
     
    		li { margin-left: 2.4rem; }
    		.hoverThumb { display: none; }
     
    	</style>
    </head>
    <body>
    	<header>
    		<hgroup>
    			<h1>Forum jQuery</h1>
    			<h2>
    				<a href="">Lien</a>
    			</h2>
    		</hgroup>
    	</header>
    	<section class="conteneur">
     
    <div class="thumb-box">
        <ul id="mycarousel" class="jcarousel">
            <li>
        		<img src="../images/avatarDVJH.jpg">
    			<img class="hoverThumb" src="../images/imageTest.png">
            </li>
            <li>
        		<img src="../images/avatarDVJH.jpg">
    			<img class="hoverThumb" src="../images/imageTest.png">
            </li>
        </ul>
    </div>
     
    	</section>
    	<footer itemscope itemtype="http://danielhagnoul.developpez.com/">
    		<time datetime="2013-10-08T22:32:01.88+02:00" pubdate>2013-10-08T22:32:01.88+02:00</time>
    		<span itemprop="name">Daniel Hagnoul</span>
    		<a href="http://www.developpez.net/forums/u285162/danielhagnoul/" itemprop="url">@danielhagnoul</a>
    		<a href="http://danielhagnoul.developpez.com/" itemprop="url">Mon cahier d’exercices</a>
    		<a href="http://javascript.developpez.com/faq/jquery/" itemprop="url">FAQ</a>
    		<a href="http://javascript.developpez.com/cours/?page=frameworks#jquery" itemprop="url">Tutoriels</a>
    	</footer>
    </body>
    </html>

    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 averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2007
    Messages : 38
    Par défaut
    Merci beaucoup Daniel pour avoir pris le temps de me répondre .
    C'est beaucoup plus clair maintenant.
    Bonne journée.

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

Discussions similaires

  1. créer une vue sur une liste basé sur item permission
    Par ITParty dans le forum Développement Sharepoint
    Réponses: 1
    Dernier message: 06/05/2013, 16h20
  2. [VBA-E] Comment créer un control sur une liste de choix ?
    Par Soulsurfer dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/02/2007, 12h42
  3. Réponses: 4
    Dernier message: 16/06/2005, 15h37
  4. Selectionnet tous ou faire un clear sur une liste
    Par Canou dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/11/2004, 10h26
  5. [Débutant][jsp] évènement sur une liste
    Par phoebe dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 14/05/2004, 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