Page 3 sur 8

Publié : 02 nov. 2008, 12:20
par Fabrice.Tres.Net
Ah! des cons s'agitant devant nous c'est tentant !

Publié : 02 nov. 2008, 12:33
par Ymai
Dans ce cas, on va donc livrer du prêt à consommer.
Exemple méchamment hacké sur http://www.pierrebertet.net/projects/jq ... letooltip/
J'ai repris les CSS sans rien modifier (il y a du nettoyage à faire). Je pose pour hypothèse qu'il n'y a pas besoin d'explications sur ce point là.

Il ne reste plus que l'essentiel de la démo:
http://sapajou.be/test.html

Tout tient dans les deux fichier .js

Code : Tout sélectionner

<script type="text/javascript" src="jquery.js"></script>
	<script type="text/javascript" src="jquery.simpletooltip-pack.js"></script>
qu'il suffit d'avoir téléchargé et installé quelque part sur le serveur web.

Ensuite, il faut fabriquer ses infobulles. Elles se trouvent, invisibles, dans les <div> du bas de la page. Ici, il y en a trois qui s'appellent tooltip_1, tooltip_2 et tooltip_3.
Elles sont cachées par un mécanisme Javascript.

Le deuxième secret se trouve dans

Code : Tout sélectionner

	
<script type="text/javascript">
$(function(){
	$("a.tooltiplink").simpletooltip();
	$("a.clic").simpletooltip({click: true});
	$("a.delay").simpletooltip({hideDelay: 0.5});
	})
</script>
qui est dans l'entête.
En gros, cela signifie que tous les liens (<a>) auxquels on aura attribué la class "tooltiplink" vont avoir le comportement "simpletooltip()" défini en Javascript.
Lors du passage de la souris sur le lien <a href="#tooltip_x" class="tooltip">, le div qui porte le même "id" que la référence href va apparaître.

Pour a.clic, même système; mais ne concerne que les liens (<a>) auxquels on a attribué la class "clic". Et finalement, encore idem pour le troisième si l'on a attribué la class "delay".

Après, on joue un peu avec tout ça jusqu'au moment où l'on a un peu compris comment ça marche. Et finalement, on revient aux explications détaillées pour avoir plus de précisions. Par exemple, sur ce qui est indiqué entre les accolades.

Voilà, je n'avais jamais touché à ces "tooltips" avant. Mais si l'idée est de reculer devant toutes les difficultés, je ne suis pas du tout sûr que le parapente soit un bon plan (de vol).
Bon courage.

[edit]quelques précisions apportées dans le texte ci-dessus[/edit]
[nota]Overlib est très bien. Je l'ai utilisé aussi. Mais je trouve que des machins comme

Code : Tout sélectionner

<a href="javascript:void(0);" onmouseover="return overlib('Bla bla bla, bla bla  bla, bla bla  bla, bla bla  bla, bla bla  bla, bla bla  bla, bla bla  bla, bla bla  bla, bla bla  bla, bla bla  bla, bla bla  bla, bla bla  bla, ).',
  STICKY, MOUSEOFF);" onmouseout="return nd();">here</a>
ce n'est pas très lisible. Avis personnel...[/nota]

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092510 Ubuntu/8.04 (hardy) Firefox/3.0.3

Publié : 02 nov. 2008, 12:45
par Fabrice.Tres.Net
Le peuple du haut, (celui proche des nuages!) te parle:
GAUNCE a écrit : Même en Français, je ne comprends rien, c'est ce qui fait la différence entre l'élite et le bas peuple.
Je ne vois pas ou tu as les fichiers aperçus au survol, ni l'application sur les zones réactives, qui est surtout celà mon problème car tout en CSS me semblait sympa mais je ne sais pas comment appliquer sur les zones.
Transposer sur mon cas me parait insurmontable!.
Merci.
C'est surtout du javascript:

Le html, la découpe de la carte

Code : Tout sélectionner

 <img id="carte" usemap="#map" src="images/Secteurs-VL-256.png" name="carte" width="505" height="585">
          <map name="map" id="ea">
            <area shape="poly" coords="272,120,303,121,239,279,217,288,223,186,267,121,269,119" title="Secteur Bonhomme" nohref="nohref" onmouseover="return Bonhomme()" onmouseout="return nd()">
            <area shape="poly" title="Secteur Longemer" coords="128,319,164,311,219,288,221,190" nohref="nohref" onmouseover="return Longemer()" onmouseout="return nd();">
            <area shape="poly" title="Secteur Vol Libre Markstein" coords="137,466,154,464,259,419,291,386,306,275,240,278,165,311,130,320,130,319,128,319" nohref="nohref" onmouseover="return Markstein()" onmouseout="return nd();">
    
On remarque que pour chaque zone définie, il y a un appel "indirect vers une fonction au survol de la souris (onmouseover), par exemple Markstein(), le return est nécessaire pour finir qqchose dont je n'ai plus souvenir.

onmouseover="return Bonhomme()" onmouseout="return nd()"

J'ai regroupé mes fonctions dans un fichier js (ea.js)dans lequel on trouve:*

Code : Tout sélectionner

...
var TextMarkstein = '<h1>SECTEUR MARKSTEIN - SCTA/5 </h1><p class="interdit">Au dessus de FL115: interdit au Vol Libre</p>De 1890 à FL145 : 3 cas hors NOTAM<ul><li> Week-end et jours feriés : Autorisé du sol jusque FL115 soit 3500m</li><li class="interdit">Du Lundi au vendredi	SCTA/5 classe D - Interdite parapente SI le Secteur Markstein N\'EST PAS OUVERT </li><li>De 1890m à 2450m <b>SI Secteur Vol Libre du MARKSTEIN OUVERT</b><hr />Du sol à 1890 m : Classe G (Vol à vue pour Tous / VFR) </li></ul><p><img src="images/Zone-VL-Coupe-Sud_r.png" ></p> ';

....

function Markstein() {

	overlib(TextMarkstein, FGCOLOR, '#99FF99', RELX, 10, RELY, 10);

	ol_fgcolor="yellow";

//	changeStyles();

}
Overlib crée une DIV d'identifiant overDiv contenant l'HTML du premier champ, ici dans ma variable.
RELX, 10, RELY, 10 fixe la position en relatif de la "fenêtre" par rapport à la souris.
Bien entendu, il faut aussi installer la librairie overlib ...

Voir un manuel in french here:
http://home.nordnet.fr/~amoreaux/html/o ... uel_f1.htm

et http://www.unixgarden.com/index.php/web ... -a-overlib

Publié : 02 nov. 2008, 12:51
par Ymai
Fabrice.Tres.Net a écrit :Le peuple du haut, (celui proche des nuages!) te parle:
Moi, je dis qu'avec ce ciel si bas qu'un canal s'est pendu, ce n'est pas un temps pour voler.

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092510 Ubuntu/8.04 (hardy) Firefox/3.0.3

Publié : 02 nov. 2008, 13:26
par GAUNCE
Merci vraiment à vous deux, car je dois reconnaitre que l'effort est particulièrement louable.
Le problème c'est que ça m'a pris la tête et qu'après je ne comprends même plus 2+2
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3

Publié : 02 nov. 2008, 16:21
par GAUNCE
Avant vos deux réponses, j'avais commencé en CSS parceque javascript peut-être désactivé et j'aime pas.
Donc je voulais poster la page d'essai avant déjeuner, je le fais donc, mais je bute sur ce dont je parle depuis le début, à savoir l'aplication sur chaque area. Là j'en ai mis deux, le premier fonctionne pas le second. La photo comporte 4 zones, le but étant de mettre les noms des choristes de chaque pupitre.
Si quelqu'un sait comment faire?, après je peaufinerai la pop up puisque l'on peut tout y mettre également.
http://amichant.free.fr/groupessai.htm

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3

Publié : 02 nov. 2008, 16:36
par jpbardiau
GAUNCE a écrit :j'avais commencé en CSS parceque javascript peut-être désactivé et j'aime pas.
Les CSS aussi :wink:

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3

Publié : 03 nov. 2008, 15:05
par Fabrice.Tres.Net
S'il s'agit de ne marquer que peu de zones, cela peut se faire en css pur.
Mais attention IE n'accepte (du moins de souvenir) la propriété hover que sur les liens.
Donc dans le cas présent, j'imagine que l'on pourrait :

Mettre l'image en fond,
Soit :
a) Mettre des images "transparentes" positionnées en css sur les zones "réactives", ces images seront des liens!
b) Mettre des liens normaux, les faire disparaitre en css (visibility:hidden),

Mettre le texte dans chaque lien en "span"
C'est ce texte qui apparaitra au survol (a: hover#id_du_span_a_afficher)

Si l'homme du bas de la France pouvait tester, les hommes du haut de la France et voir plus haut que la France serait intéressé par le résultat!

Publié : 03 nov. 2008, 16:23
par GAUNCE
Tout à fait exact, avec IE 7 ça ne s'affiche que sur les liens. C'est vrai que c'est déja mal barré...
Les textes et éventuellement les images sont déja dans la page d"essai entre les balises span: a.bulle:hover span.
Tu peux me préciser comment faire:
a)Mettre des images "transparentes" positionnées en css sur les zones "réactives"
b) Mettre des liens normaux, les faire disparaitre en css (visibility:hidden),

comment les mettre sur l'autre image ou les zones réactives, je comprends pas trop

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3

Publié : 03 nov. 2008, 17:18
par Fabrice.Tres.Net
Pour faire une image tansparente, tu peux utiliser GIMP, cela consiste à avoir un fond transparent sur lequel on ne va rien mettre puisque les images seront positionnées sur l'image des choristes, comme sur l'exemple joint, laissant apparaître par transparent les dist choristes.

Tu peux aussi mettre un léger cadre sur les "masques".
Image
HTML + css , brut de fonderie à affiner !

Code : Tout sélectionner

<div id="leschoristes">
<a nohref="nohref"> <img src="masque-ginette.png" id="ginette_img" /><span id="idginette">Ici c'est Ginette</span></a>
</div>

Code : Tout sélectionner

#leschoristes {
  background:url(../images/ChoraleQuiChante.jpg); /* la photo*/
  }
a #idginette {
  visibility: hidden; /* caché si non survolé par le mulot*/ 
  ....
  }

a: hover#idginette {
  visibility: visible; /* message du span apparait si survolé par le mulot*/ 
  ....
  }

Publié : 03 nov. 2008, 18:38
par GAUNCE
Je reviens, j'ai fait autre chose pour éviter de faire imploser mon centre de réflexion.
A priori ton système parait intéressant, l'application un peu moins.
Je rectifie, j'ai une compréhension à effet retard.
J'ai crée 4 zones avec bordure, autrement on les voie pas(j'avais fait sans d'abord) j'ai supprimé l'image pour faire un div avec background ( ça y ait j'ai compris comme ça on peut mettre les masques dessus) et je reviens pour ...

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3

Publié : 03 nov. 2008, 19:19
par GAUNCE
Je rame! dans ton exemple le CSS il y a l'id de l'image intégrale et le lien qui normalement doit s'appliquer à une zone? dans le html, c'est quoi id="ginette_img" que je retrouve nulle part!
Faut que je crée un div par zone?

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3

Publié : 03 nov. 2008, 20:28
par GAUNCE
J'ai fait ça et apparemment,
http://amichant.free.fr/essaimap.html
y a rien qui marche!

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3

Publié : 03 nov. 2008, 20:51
par Fabrice.Tres.Net
Ah! ces landais...

Ginette, c 'est la fille de gauche !

Code : Tout sélectionner

<img src="masque-ginette.png" id="ginette_img" />
cette image va encadrer Ginette,
Le positionnement de l'image-cadre se fera en css, en relatif / à la div des choristes !

en css cela va donner :
#ginette_img {
margin-top: 100px;
margin-left: 110px;
}

Code : Tout sélectionner

<span id="idginette">Ici c'est Ginette</span>
ça c'est le texte que tu voir apparaître au survol, il apparaitra selon le positionnement css, par exemple (id="ginette_texte" aurait eu plus de sens!)

#idginette {
border: 2px solid red;
color:red;
margin-top: -100px;
margin-left: -300px;
}

Essaie avec un d'abord!

Publié : 03 nov. 2008, 20:55
par Fabrice.Tres.Net
Sans les images transparentes cela ne va pas marcher.

Je ne crois pas que l'on puisse mettre des liens sur les div! Les balises de type "inline" ne doivent pas normalement contenir de balises blocs!