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 :

Effet Hover sur 2 liens distincts ?


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 747
    Points : 168
    Points
    168
    Par défaut Effet Hover sur 2 liens distincts ?
    Bonjour,

    je voudrais "solidariser" les hover sur 2 liens distincts.

    J'ai une boucle qui me génère l'affichage de posts (Titre + Contenu).
    Je voudrais qu'un rollover sur Titre donne un effet Hover sur Titre et sur Contenu
    (et réciproquement pour un rollover sur Contenu)

    Voilà le code:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <div class="pane" style="display: block;">
    	<ul class="recent-posts">
    		<?php query_posts('showposts=2&cat='.of_get_option('of_blog_cat')); ?>	
    		<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    			<li class="recent-post">
    				<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
    				<div class="excerpt"><?php $excerpt = get_the_excerpt(); echo string_limit_words($excerpt,20);?> <a href="<?php the_permalink(); ?>"><span class="recent-read-more">...</span></a></div>
    			</li>
    		<?php endwhile; ?>
    		<?php endif; ?>
    	</ul>
    </div>

    Comment faire ?

  2. #2
    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
    Bonjour,

    Merci de poster le code HTML généré et pas le PHP.

    Sinon ça peut se faire en CSS :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    .titre:hover + .contenu {
    /*style de contenu quand hover sur titre*/
    }
     
    /* ou si contenu est fils de .titre  */
     
    .titre:hover > .contenu {
     
    }

    par contre si contenu n'est pas fils de titre, la réciproque sera plus compliquée par contre

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 747
    Points : 168
    Points
    168
    Par défaut
    Euh... j'ai essayé les 2 cas de figure que tu proposes mais ça ne fonctionne pas
    (je m'y suis sans doute pris avec des gants de boxe car je n'y connais pas grand chose...)
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    .recent-post:hover + .excerpt {
    	/*style de contenu quand hover sur titre */
    	color: #999;
    }
     
    /* ou si contenu est fils de .titre	*/  
    .recent-post:hover > .excerpt {
    	color: #999;
    }

    Voici le code en html sinon
    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
    <div class="pane" style="display: block;">
    	<ul class="recent-posts">			
    			<li class="recent-post">
    				<h3><a href="http://xxxx">Titre 1</a></h3>
    				<p class="recent-meta"></p>
    				<div class="excerpt"><a href="http://xxxx">Mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et <span class="recent-read-more">...</span></a></div>
    			</li>
    			<li class="recent-post">
    				<h3><a href="http://xxxx">Titre 2</a></h3>
    				<p class="recent-meta"></p>
    				<div class="excerpt"><a href="http://xxxx">Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat <span class="recent-read-more">...</span></a></div>
    			</li>			
    	</ul>
    </div>

  4. #4
    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
    color n'est peut-être pas la propriété css la plus évidente pour voir que ça fonctionne. Avec un background-color on y voit tout de suite plus clair :
    http://jsfiddle.net/hJ2C8/

    Et dans le cas où tu souhaites cibler le hover sur ton titre (<h3>) et pas ton <li>, le plus approprié est d'utiliser le sélecteur CSS ~ . Le sélecteur + ne peut pas fonctionner car il y a un <p> entre les deux.

    Un exemple vaut mieux que de longs discours :
    http://jsfiddle.net/hJ2C8/1/

    Comme tu le vois, le seul souci survient lorsqu'il faut appliquer le style sur titre au hover du contenu. En effet, la norme actuelle du CSS ne permet pas de sélectionner des élements précédents, seulement les suivants. Dans ce cas-là, pas le choix, il faut utiliser Javascript :

    http://jsfiddle.net/hJ2C8/2/

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 747
    Points : 168
    Points
    168
    Par défaut
    Dis-donc Bravo et Merci


    color n'est peut-être pas la propriété css la plus évidente pour voir que ça fonctionne.
    Effectivement.
    En fait ton code initial marchait bien sauf qu'on cherchait à changer la couleur du 'a' distant lors du rollover...

    J'ai repris ton code js et modifié les css ainsi :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    .recent-post h3:hover,
    .recent-post h3.hover a
    {
    	color: #999; 
    }
     
    .recent-post .excerpt:hover,
    .recent-post h3:hover ~ .excerpt a {
    	color: #999; 
    }
    C'est tout bon.

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

Discussions similaires

  1. Effet zoom sur un lien (image) javascript
    Par ghost73 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/01/2016, 04h26
  2. Hover sur un lien
    Par Onelove dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 12/11/2014, 06h53
  3. Effet hover sur titre avec passage souris sur texte
    Par ickyknox dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 24/11/2012, 17h01
  4. background disparait quand hover sur un lien (IE bien sûr!)
    Par deejay2221 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 11/07/2008, 14h37
  5. Pas d'effet .hover sur un submit sous IE ?!
    Par lolymeupy dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 02/06/2008, 14h00

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