| Auteur | |
|---|---|
| Lothindil | |
Stop à mysql_ ! 557 Posts |
Salut tout le monde ^^ Je suis entrain de monter un bout de mon site qui demande des effets lors que l'utilisateur passe la souris sur une image et j'aimerais savoir si c'est possible sans javascript. Soit 8 images : 4 classes en 2 versions (1 petite et 1 grande). Soit 4 descriptions : composé d'un <h1> et un <p>. Chaque image correspond donc à un <h1> et un <p>. Lors du chargement de la page, une classe précise est récupérer en php, celle choisi avant. Seuls le <h1> et le <p> en rapport avec cette classe sont affichés. (les autres sont cachés par la propriété "display : none"). L'image de la classe est en grand modèle On en arrive à un code source de ce type (classe 3 "chevalier" sélectionnée):
J'aimerais qu'en passant la souris sur une des images en petit, celle en grand rétrécisse (passage de src images/classe/x-2.png à images/classe/x-1.png + changement de classe pour avoir l'image à la bonne taille), que celle sur le pointeur grandisse (changement inverse) Et que le texte approprié apparaisse bien sûr. Je sais faire tout ça en javascript, c'est pas trop le soucis ^^ mais je me demandais sur un cas pareil jusqu'où je peux aller en css... (possiblement avec changement de structure^^) Parce qu'à terme, j'aurais voulu un fondu pour l'augmentation et de la diminution de taille des images, hors je sais pas si c'est possible en js ça. Modifié par Lothindil (05 Mar 2013 - 13:15) Celui qui pose une question risque cinq minutes d'avoir l'air bête, celui qui ne pose pas de question restera bête toute sa vie. Oubliez mysql_... Passez à mysqli_ ! |
| rodolpheb | |
| 946 Posts |
La solution est simple mais avec les images en background. Est-ce que c'est ce que tu souhaites? |
| gc-nomade | |
gcyrillus en mode portable 1196 Posts |
Bonjour, La description de ce que tu souhaites faire est possible en CSS et une structure HTML mieux structuré, éventuellement en faisant usage d’élément de formulaire. Ton code , tel quel, est pilotable par JS uniquement et plutôt incohérent: il y a des titres et paragraphes, puis des images derrière le dernier bloc titre/paragraphes. La description des images n'est pas rattaché aux images, au pire tu pourrais ajouter l'attribut desc="#id de la description" sur les images. Avec une structure plus cohérente (par exemple des bloc figure/figcaption) et une feuille de style avec une transition sur figure, figure.showViaPhp et figure:hover et une petite réflexion sur le poids des sélecteurs. exemple dans le même esprit (mais different ) pour dire : no js :http://dabblet.com/gist/4262212 (selectionne une galerie et survol une image. Il n'y a pas de js impliqué , sauf pour la gestion automatique des prefixes CSS. ++ profitez et prenez du temps pour vos proches ... le reste est dérisoire. |
| Lothindil | |
Stop à mysql_ ! 557 Posts |
rodolpheb a écrit : Je ne peux pas les mettre en Background, parce qu'elles sont générés par le PHP (et que c'est casse-pied à mettre autrement^^) Bah j'avoue que mon code html, il est pour l'instant fait pour être au plus simple pour donner mon visuel^^ après le html et le css, c'est pas ma tasse de thé, suis plutôt php et à la limite javascript . Voilà à quoi je voudrais arriver. Et pour l'instant, ça marche avec un css minimaliste :
Si j'intercale mes images sous les paragraphes, j'ai l'impression que ça va compliquer franchement mon travail pour positionner tous mes trucs. Donc, même si la souris est hors d'une image, le texte doit rester afficher (changement uniquement sur OnMouseOver en js, pas sur OnMouseOut). Modifié par Lothindil (05 Mar 2013 - 18:40) Celui qui pose une question risque cinq minutes d'avoir l'air bête, celui qui ne pose pas de question restera bête toute sa vie. Oubliez mysql_... Passez à mysqli_ ! |
| gc-nomade | |
gcyrillus en mode portable 1196 Posts |
ce n'est pas aussi compliqué en css, Pour transcrire ça en js pour les vieux ie, tu peut reprendre les CSS proprio : zoom et filter(opacity) avec settime pour les transition. En ciblant via l'url le personnage, le php n'est pas forcement utile. ++ demo plus proche de ton visuel. http://result.dabblet.com/gist/5094340/#f1 http://result.dabblet.com/gist/5094340/#f2 http://result.dabblet.com/gist/5094340/#f3 http://result.dabblet.com/gist/5094340/#f4 profitez et prenez du temps pour vos proches ... le reste est dérisoire. |
| Lothindil | |
Stop à mysql_ ! 557 Posts |
Je n'ai pas besoin de gérer en-dessous de IE8 (part négligeable sur ma cible, par expérience). Et le PHP est capital, c'est pour une inscription et donc pour mettre dans une base de données Je vais tenter de retravailler déjà le html et le css pour l'affichage fixe ^^ Celui qui pose une question risque cinq minutes d'avoir l'air bête, celui qui ne pose pas de question restera bête toute sa vie. Oubliez mysql_... Passez à mysqli_ ! |
| Lothindil | |
Stop à mysql_ ! 557 Posts |
Bon, j'ai retravaillé et tenté de faire le hover et ça plante sérieusement...
Avec comme css :
La div "page-2", est une div de taille fixe Au "repos", le comportement est normal, j'ai mes 4 classes qui s'affichent et les textes absents. (bon j'aurais voulu que la classe choisie précédemment soit mis en évidence comme si elle était sous le coup du hover dès le départ, mais je sais pas si c'est faisable). Par contre, au survol, c'est déplorable. Sous opera (dernière version) : - le texte apparaît bien en haut de ma div page-2 - les personnages s'agrandissent bien... mais vers le bas (hors, vu qu'avec les positions, ils sont contre la limite en bas, j'aimerais qu'ils s'agrandissent vers le haut, mais le margin-top fixé à 100px contre 200px ne sert à rien) - les personnages sous le coup du hover ainsi que les suivant baissent, où ceux avant montent Au repos Premier passage sur une image Après quelques passages entre chevalier (3ème image) et rôdeur (4ème image) Sous firefox et chrome (dernière version) Le seul soucis reste les images qui s'agrandissent vers le bas plutôt que vers le haut. Modifié par Lothindil (07 Mar 2013 - 11:44) Celui qui pose une question risque cinq minutes d'avoir l'air bête, celui qui ne pose pas de question restera bête toute sa vie. Oubliez mysql_... Passez à mysqli_ ! |