Nils Posté 18 Février 2005 Posté 18 Février 2005 Bonjour, existe-t'il une méthode qui permette d'afficher un calque et en masquer un un autre sur un clic de souris sans avoir recours à JavaScript ? J'ai vu l'action(?) hover, mais cela ne me convient pas, je ne veux pas une réaction au survol, mais bien à un clic (et je voudrais que mon calque reste affiché après le clic). Merci. Nils.
AntiStatic Posté 18 Février 2005 Posté 18 Février 2005 Salut ! je ne vois pas d'autre moyen que de le faire en javascript. Si tu utilise dreamweaver il y a un comportement (behavior) qui le fait trés bien : Show / Hide Layer ! En voici le code : <html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><script language="JavaScript" type="text/JavaScript"><!--function MM_reloadPage(init) { //reloads the window if Nav4 resized if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) { document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }} else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();}MM_reloadPage(true);function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x;}function MM_showHideLayers() { //v6.0 var i,p,v,obj,args=MM_showHideLayers.arguments; for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2]; if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; } obj.visibility=v; }}//--></script></head><body><div id="LeCalque" style="position:absolute; left:28px; top:97px; width:243px; height:179px; z-index:1; background-color: #FF9900; layer-background-color: #FF9900; border: 1px none #000000; visibility: hidden;">Mon calque</div><p><a href="javascript:;" onClick="MM_showHideLayers('LeCalque','','show')">Montrer</a> | <a href="javascript:;" onClick="MM_showHideLayers('LeCalque','','hide')">Cacher</a></p></body></html> J'espere que ca peut t'aide A +
Raphael Posté 18 Février 2005 Posté 18 Février 2005 (modifié) _AT_A à Z Fleurs > le code macromédia que tu proposes est bourré de javascript On peut effectivement faire ce genre de choses en CSS : http://www.alsacreations.com/articles/affiche/, mais ça ne fonctionnera qu'au survol effectivement. Seul l'action javascript onclick permet de réagir au clic. Modifié 18 Février 2005 par Sibelius
Nils Posté 18 Février 2005 Auteur Posté 18 Février 2005 Merci AàZ Fleurs ! non, en fait je voulais me passer de js, mais il semblerais bien que c'est impossible pour ça ! merci pour le code. (mais pour l'instant, je travaille simplement dans un éditeur). Et mes couches fonctionnent avec JS pour le moment. merci encore, Nils. .../... Merci Sibelius, oui, j'avais bien mis le nez dans le code d'alsacréation, mais c'est bien du onclick que je voudrais et donc, js obligatoire ... tant pis. J'avais trouvé une solution avec des signets, mais impossible d'avoir un calque plus petit que son contenu sans assenceur ... C'est possible ? merci.
Sarc Posté 18 Février 2005 Posté 18 Février 2005 mais ça ne fonctionnera qu'au survol effectivement. Ou alors en :active, il faudrait faire en sorte qu'il reste actif apres un clic de la souris.. lol Yen a qu'on essayé, ils ont eu des problèmes
Nils Posté 18 Février 2005 Auteur Posté 18 Février 2005 Bref, impossible sans JS ! Et pour ce qui est d'une couche sans assenceur avec un contenu plus grand que sa taille, c'est envisageable ? (contenu "atteingnable" par signets) Merci.
Sarc Posté 18 Février 2005 Posté 18 Février 2005 Si tu le veux sans ascenceur, pk mettre un contenu plus grand qui ne soit pas accessible ? ^o) Enfin ça doit être possible en mettant ta div conteneur à la taille que tu veux, et un contenu en position absolute à l'intérieur de ce conteneur, ça ne jouera pas sur sa taille... A priori, parce que le CSS joue des tours, souvent :/
Nils Posté 21 Février 2005 Auteur Posté 21 Février 2005 Salut Sarc, en fait, je ne veux pas d'assenceurs pour le look, et rendre le contenu accessible par des boutons appelant des signets. Mais malheureusement, impossible de faire disparaitre ces satanés assenceurs. Tout ça pour éviter l'appel de fonctions javascript pour cacher ou afficher des couches. Mais même en absolute, ça marche pas, la taille de la couche s'adapte à son contenu, et sinon, il faut les assenceurs...
Sarc Posté 21 Février 2005 Posté 21 Février 2005 une iframe ptet, mais c'est moche aussi au niveau code... Dur dur ce que tu demandes lol !!
Nils Posté 21 Février 2005 Auteur Posté 21 Février 2005 ok ! mais ???, c'est quoi une iframe ? c'est une fausse frame ? Pourquoi c'est moche au niveau du code ?, ça marche pas avec tous les navigateurs ?
Sarc Posté 21 Février 2005 Posté 21 Février 2005 Je m'y connais pas du tout trop en ça, mais bon :/ Jte conseille de rechercher Mais les bannières de pubs sont dans des iframes, et quand je joue de la molette à l'intérieur, la bannière monte (j'ai essayé sur le hub lol )... Je crois que c'est pas référencé par contre. Mais j'attends que les pros confirment !
Nils Posté 21 Février 2005 Auteur Posté 21 Février 2005 Merci Sarc, mais elle est où la banière de pub sur laquelle t'as essayé ? (Désolé Dan, la pub est bien cachée sur le Hub, ou c'est moi qui la vois plus !)
Sarc Posté 21 Février 2005 Posté 21 Février 2005 tout la haut à droite par ex... Les annonces goooooooogle
Nils Posté 21 Février 2005 Auteur Posté 21 Février 2005 re, je regrette mais je dois avoir les yeux ... , je n'y ai pas trouvé de banière de pub qui défilent avec la molette et sans assenceur ...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant