jQuery quand tu nous tiens !!

dmo95

Membre actif
24 Mai 2007
584
14
Bonsoir à tous,

Voilà un fervent utilisateur de jQuery, je rencontre parfois quelques problèmes que je qualifierais d'illogique, vous allez mieux comprendre dans quelques lignes.

Voilà en gros je souhaitent animé mes pages web, en modifiant le CSS afin de faire jolis effets et ce avec la méthode animate(). L'évènement choisi sera un mousenter et un mouseout sur une liste d'images.

Je vais tout de suite procéder à l'illustration par le code :

CODE CSS :
Bloc de code:
#nouveaute .thumbnail {opacity : 0.2;}
#nouveaute ul li {float : left; width : 180px; height : 147px; overflow : hidden;}
#nouveaute h4 {position : relative; width : 180px; top : 80px;text-align : center;}

CODE HTML :
Bloc de code:
<div id="nouveaute">
	<img src="images/news-label.png" alt="Nouveautés" />	
	<ul>	
		<li class="hello">
			<h4>Casquette</h4>
			<a href="#URL">
				<img class="thumbnail" src="#IMAGE"  alt="#PRODTITRE  " title="#PRODTITRE  " border="0" />
			</a>
		</li>
	</ul>
</div>

Ne vous souciez pas vraiment du code, derrière il y a le moteur de Tehlia basé sous SPIP, j'en ai supprimé les boucles pour éviter la confusion, mais les #IMAGE... vous imaginez que cela correspond au résultat souhaité ;)

Et enfin le CODE JS :
Bloc de code:
$('.hello').mouseenter(function() {
	$(this).children("a").children("img").animate({opacity:'1'}, 150);
});
	
$('.hello').mouseout(function() {
	$(this).children("a").children("img").animate({opacity:'0.2'}, 400);
});

Donc le résultat souhaité est simplement de faire un "highlight" sur l'image lorsque l'utilisateur passe ca souris sur l'image, en l'occurrence la classe hello qui comprend l'image et le titre h4. Puis de revenir à son état d'origine lorsque le curseur quitte l'image.

Le comportement étrange se réalise lorsque vous rentrez dans l'image et que vous passez ensuite sur le titre (qui est superposé sur l'image). Ce qui à pour effet de considérer que vous êtes sortis de l'élément portant la classe hello, ce qui n'est absolument pas le cas !!

Un peu étrange comme explication, je vous invites donc à comprendre mieux ma situation via le site, il s'agit du bloc nouveautés en bas de page : retroparadize.com.

Bien cordialement, Simon.
 
Je ne suis pas un pro jQuery (mais mootools c'est pas très loin) mais j'ai des pistes.

Déjà, essayes de réaliser ton effet sans javascript en utilisant le CSS hover.
Bloc de code:
.maclasse:hover {
opacity : 1;
}

Puis ensuite une fois que tout marche correctement, utilises le hover jQuery.

Bloc de code:
$(".maclasse").hover()

Ca me parait déjà moins hasardeux que le mouseEnter et mouseLeave.

PS : Tu devrais en jQuery pouvoir utiliser un chemin CSS complet genre. (Ca me paraît un minimum pour ce genre de bibliothèque.

Bloc de code:
$(".hello a img")
 
Ok merci, donc en fait lorsque je désactive les événements jQuery et que j'utilise uniquement CSS, je rencontre toujours le petit problème à cause du h4 qui se trouve au dessus de l'image. C'est beaucoup moins gênant car la le changement d'opacité se fait presque instantanément, mais le fait d'utiliser jQuery, ajoute une notion de temps et par conséquent je pense que cela ajoute de nombreux problèmes.

Ex : le temps de la méthode animate() est de 300ms mais le mouseenter/mouseout se fait en moins de 300ms, ce genre de situation doit engendrer le comportement remarqué...

Je ne sais pas trop comment m'y prendre, une solution serait de mettre les évènement aussi sur l'élément h4.

Si tu analyses bien le JS, mes "handler" (éléments qui détectent l'évènement) sont mes li de la classe hello. Chaque li.hello contiennent les éléments h4 et img. Ce qui est étrange c'est que j'ai l'impression qu'une fois rentré dans la liste (li.hello mais sur l'image) et qu'ensuite il passe sur le h4 il considère cela comme une sortie le mouseout s'enclenche...

PS : J'ai également essayer avec le hover(functionIn(), functionOut()) le résultat est identique...
 
Oui mais ça me parait pas anormal en fait, je pense effectivement que le titre étant au dessus c'est considéré comme étant en dehors de l'image. Donc il faut remettre des événements dessus. C'est chiant certes, mais je ne suis pas sur qu'il y ait d'autres solutions.
 
Bon, il s'avère que cela fonctionne correctement avec la fonction hover()... je l'avais sans doute mal implémenté la première fois que j'avais essayé celle-ci ! Je vous met le code qui fonctionne ;)

Bloc de code:
$('.hello').hover(function() {
        $(this).children("a").children("img").animate({opacity:'1'}, 150);
    },function() {
        $(this).children("a").children("img").animate({opacity:'0.2'}, 400);
    });

PS Benjamin D.C : je ne vois pas ou tu veux en venir ? je comprend très bien le positionnement relatif, développe ta pensé ?! Peut être que certaine chose m'échappe mais je connais l'essentiel de cette propriété...
 
Pourquoi mettre ce positionnement relative à ta h4 ?

Perso de toute façon le titre placé là me gêne visuellement au survol, je l'enlèverais au survol avec un display none, ou un z-index ou encore un texte-indent de -3500 px par exemple.

Bref : au survol de l'image pas de texte, tu as une solution élégante à ton souci&#8230; :siffle: :p :D

Sinon joli montage sous Thelia&#8230; ;)
 
Ouai c'est vrai que c'est plus sympa si j'enlève le texte dessus ! Mais je comprend pas ton idée par rapport au position relative ?! Je veux tout simplement que le h4 soit sur l'image, j'ai opté pour cette propriété.

Et simple question, comment as tu vu que c'était fait avec Thelia ? Par rapport au nom des pages ?

Merci, a +
 
Pour Thelia c'est toi qui l'indique… :D

Je connais bien Thelia… une remarque par rapport à ton portfolio, je suis allez voir le site Galietude.com, mettre le validateur html (ou CSS) c'est bien joli mais si en cliquant dessus on tombe sur 13 erreurs ça le fait pas du tout.

Je ne suis pas intégriste (perso j'oublie la validation) mais si tu mets ce genre de chose vérifie au moins que c'est propre sinon, pour moi, c'est une grosse erreur et ça te discrédite pas mal. :siffle: :rolleyes:
 
Bien vu ^^

Ceci étant je ne m'occupe plus du site depuis pas mal de temps, la main a été passée...

Je vais voir avec eux pour enlever les w3c validators, car en effet c'est pas très pro :D
 
A propos de jQuery, je viens de rencontrer un souci sur un framework distant avec la librairie Prototype présente elle-aussi et mon CourousselLite foutait bien la bazar.

La solution est celle-ci, décrite aussi par-là que je connaissais pas (entrevue mais oubliée en fait)…

Attention à bien mettre les appels des librairies dans le bon ordre (jQuery en dernier).

Ça marche très bien… :siffle: ;)
 
Bien vu, je connaissais ce problème notamment avec l'utilisation de mootools (tout aussi excellent pour d'autre raisons). Le seul à avoir pensé à l'utilisation de framework AJAX et je dis bien le seul c'est encore jQuery !! Ah il est très fort quand même.

Bonne information en tout cas ;)
 
c'est la derniere version en ligne? :D parce que c'est moche et l'effet est merdique, sans parler des fonts de l'equilibre bancale general encore du noire pour rattraper la merde mais ca ne trompe qu'un guigui, tu devrais travailler avec un DA pendant quelque temps faire un stage, tu y apprendrais beaucoup
 
Oh Tatoutille, je t'en dirais bien des choses !! :D Mais je m'abstiendrais, puis à quoi bon tu es bien trop loin pour que j'avance quoi que se soit !

Je suis d'accord avec toi que certaines div sont améliorables, il ne s'agit pas tout à fait de la dernière version, mais elle s'en rapproche vraiment. Euh les fonts !? Et bien il y en a deux Helvetica ou Thaoma... (le reste dans les images sont des éléments graphiques réalisés par mon client, pas toujours de très bon goût ^^). J'en dirais pas plus, la comparaison est flagrante ! :D

A +

PS : Pour l'effet, je le prend au second degrés, je sais que ca déchire tout :p
 
Oh Tatoutille, je t'en dirais bien des choses !! :D Mais je m'abstiendrais, puis à quoi bon tu es bien trop loin pour que j'avance quoi que se soit !

Je suis d'accord avec toi que certaines div sont améliorables, il ne s'agit pas tout à fait de la dernière version, mais elle s'en rapproche vraiment. Euh les fonts !? Et bien il y en a deux Helvetica ou Thaoma... (le reste dans les images sont des éléments graphiques réalisés par mon client, pas toujours de très bon goût ^^). J'en dirais pas plus, la comparaison est flagrante ! :D

A +

PS : Pour l'effet, je le prend au second degrés, je sais que ca déchire tout :p

oui la comparaison est flagrante il y a un site de nase vendu a un client comparé a un de mes inombrables page perso que j'ai pu faire :up:, l'effet de roll-out en bas est affreux, by the way quand tu pourras gouter ce qu il y a sur ma home page tu auras fait beaucoup de progres, je ne sais pas d'ou tu sors mais ce que tu fais est encore tres immature et tres mauvais.
 
T'es génial tatouille, change pas !

Oui je trouve aussi qu'il a une certaine classe, puis c'est vrai que le l'utilisation de terme technique anglais, mélangé à des expressions anglaises... trop la classe ! Je sais pas ce que ca donne dans la vie en tout cas sur les forums tu déchires (cf. point Disco, il organise même des soirées VIP tu te rends compte ?!).

PS : ne me rabâche pas que tu vies à San Francisco, s'il te plait, mais ici on est sur un forum francophone, so !

Ca sera mon ultime message, après on aime ou on aime pas mon design et les effets de "roll-out" !
 
Oui je trouve aussi qu'il a une certaine classe, puis c'est vrai que le l'utilisation de terme technique anglais, mélangé à des expressions anglaises... trop la classe ! Je sais pas ce que ca donne dans la vie en tout cas sur les forums tu déchires (cf. point Disco, il organise même des soirées VIP tu te rends compte ?!).

PS : ne me rabâche pas que tu vies à San Francisco, s'il te plait, mais ici on est sur un forum francophone, so !

Ca sera mon ultime message, après on aime ou on aime pas mon design et les effets de "roll-out" !

c'est pas un probleme d'aimer ou pas, c'est mauvais tout court, point bar, je peux comprendre que tu te sentes ve&#8776;é
mais c'est un fait, nada, et travailler avec un DA te ferait beaucoup de bien.

et oui on dit dans le metier roll-out roll-over, tu sais en informatique on ne fait qu'utiliser des termes "anglais" pour definir certains conceptes et oui c'est la norme et somme toute roll-out , roll-over home page, sont des termes assez courant chez les devs web en France et aussi a Quebec whatever, je ne sais vraiment pas d'ou tu sors mais comme on dit ici quite a shithole.
 
Nan mais tatouille .... je vois pas comment tu te permet de critiquer... le site de ta signature est illisible .... Donc un stage en DA, ça ne te ferait pas de mal non plus ....
c'est un site perso guigui, alors les simplets merci d'arreter de comparer des choux et des carottes et c'est tout a fait lisible pour ce que je veux, et je me permet de critiquer parce que je n'ai plus de boutons sur la gueule depuis bien longtemps, et aussi un passif qui me le permet, NA et puis c'est pas un stage en DA, c'est travailler avec un DA une personne.

Et ca me plait de vexer les guiguis qui font de la merde en trouvant que c'est bien et qui ne veulent pas voir que c'est pas jojo et essayer de s'ameliorer, tu vois c'est mon petit plaisir sadique de me moquer des petites gens qui se complaisent dans la mediocrité, mais je concois tout a fait que tu te sentes concerné par le cas désespéré de dmo95 :p:D et que tu te sentes l'ame du Chevalier blanc pourfendeur de tord chevauchant un bodet boiteux.