Comment kon fait ca????????? [DHTML] - Programmation
Marsh Posté le 12-12-2001 à 15:04:19
Ben l'image est contenue dans un div (enfin je ne sais meme pas si c'est utile).
En fait lorsque la souris arrive sur l'image un evenement se declenche, indiquant que le pointeur et sur l'image, a ce moment le div est rendu visible avec à l'interieur l'image correspondant à l'image survolée .
Et tant que le pointeur est en mouvement sur l'image, le div le suit à quelques pas !!!
C'est tres simple à faire !!!
Marsh Posté le 12-12-2001 à 15:07:10
je suis d'accord avec ton analyse, mais ce ki me paraît dur c le div qui "flotte" au-dessus de la page html... c comme si y avait deux pages...
je suis clair dans mon interrogation
Marsh Posté le 12-12-2001 à 15:12:43
ben moi kan j'utilise un div, ce que j'y met est "intégré" à la page et pas au-dessus du reste de la page
Marsh Posté le 12-12-2001 à 15:19:20
tu passes par les css et tu lui files une position absolue :
<div id='myDiv' style='position: absolute; left: 40; top: 40'>mon div</div>
et pour le déplacer :
<body .... onmousemove='onMove()'>
<div id='myDiv' style='....>
<script>
function onMove()
{
myDiv.style.left = event.x;
myDiv.style.top = event.y;
}
</script>
Marsh Posté le 12-12-2001 à 15:20:26
Voila deux exemple qui prouvent que tu peux faire bouger ce que tu veux !!!
Darg & Drop d'objet (div, bouton, textarea)
Code :
|
Déplacement de Div pour donner l'impression d'une rotation autour d'un axe (à l'aide des quaternions)
Code :
|
Tout ceci fonctionne avec IE
Marsh Posté le 12-12-2001 à 15:33:06
dropsy a écrit a écrit : ben moi kan j'utilise un div, ce que j'y met est "intégré" à la page et pas au-dessus du reste de la page |
pour moi, un div est une sorte de layer (que tu peux "monter" ou "descendre" avec z-index).
Je me trompe ?
Marsh Posté le 12-12-2001 à 15:34:28
art_dupond a écrit a écrit : Je me trompe ? |
non, tu restreins. on peut appliquer ça à n'importe quelle balise.
Marsh Posté le 12-12-2001 à 15:36:12
art_dupond a écrit a écrit : pour moi, un div est une sorte de layer (que tu peux "monter" ou "descendre" avec z-index). Je me trompe ? |
z-index??? put1, il fo vraiment que j'apprenne le html, moa, avant que mon employeur s'en rende compte
Marsh Posté le 12-12-2001 à 15:54:53
allez, c'est mon jour de bonté : je te file un truc que j'ai fait dans une vie antérieure et qui fait exactement la même chose. C'est compatible IE4 et sup et Netscape 4 et sup (pas testé sous netscape 6)
Attention, ca va être long comme post ...
voici le contenu du fichier etiquette.js :
//////////// DEBUT /////////////////////
var GAUCHE = 0;
var DROITE = 1;
var CENTRE = 2;
// variables de personalisation
var couleur_fond = "lightyellow";
var couleur_bordure = "black";
var couleur_texte = "black";
var taille_texte = 1;
var largeur_bordure = 1;
var decalage_x = 10; //decalage de l'etiquette par rapport a la souris
var decalage_y = 20;
var dft_largeur = 200;
var dft_direction = DROITE;
var dft_alignement = "LEFT";
var pos_fixe = false;
var pos_fixe_x = 236; //position centrale
var pos_fixe_y = 0;
// recherhce navigateur
ns4 = (document.layers)? true:false;
ie4 = (document.all)? true:false;
ie5 = false;
if ((ie4) && (navigator.userAgent.indexOf('MSIE 5'>0)) ie5 = true;
// declaration est initialisation des variables
var x = 0;
var y = 0;
var est_visible = false;
var dir; // direction courante
var le_x, le_y;
var obj_etiquette;
var hauteur_aide, largeur_aide;
var largeur_doc, hauteur_doc;
if ((ns4)||(ie4)) {
if (ns4) obj_etiquette = document.etiquette;
if (ie4) obj_etiquette = etiquette.style;
document.onmousemove = deplacementSouris;
if (ns4) document.captureEvents(Event.MOUSEMOVE);
if (ie4) {
largeur_doc = document.body.clientWidth;
hauteur_doc = document.body.clientHeight;
} else if (ns4) {
largeur_doc = document.width;
hauteur_doc = document.height;
}
//alert("largeur_doc = " + largeur_doc + ", hauteur_doc = " + hauteur_doc);
}
// PRB NETSCAPE
if (ns4) {
pos_fixe = true;
dft_alignement = "CENTER";
dft_largeur = 400;
taille_texte = 2;
}
function aide(texte, direction, alignement, largeur) {
if (! ((ns4) || (ie4))) return false;
if (typeof direction == 'undefined' direction = dft_direction;
if (typeof largeur == 'undefined' largeur = dft_largeur;
if (typeof alignement == 'undefined' alignement = dft_alignement;
if (typeof texte == 'undefined' texte = "Aide non-disponible";
html =
"<TABLE WIDTH=" +largeur+ " BORDER=0 CELLPADDING=" +largeur_bordure+ " CELLSPACING=0 BGCOLOR=\"" +couleur_bordure+ "\">\n" +
"<TR><TD>\n" +
"<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 BGCOLOR=\"" +couleur_fond+ "\">\n" +
"<TR><TD ALIGN=\"" + alignement + "\">\n" +
"<FONT FACE=\"Verdana,Arial,Helvetica\" COLOR=\"" +couleur_texte+ "\" SIZE=\"" +taille_texte+ "\">\n" +
texte + "\n" +
"</FONT>\n" +
"</TD></TR>\n " +
"</TABLE>\n" +
"</TD></TR>\n" +
"</TABLE>"
if (ns4) {
document.etiquette.document.write(html);
document.etiquette.document.close();
} else if (ie4)
document.all["etiquette"].innerHTML = html;
if (ie4) {
hauteur_aide = document.all["etiquette"].clientHeight;
largeur_aide = document.all["etiquette"].clientWidth;
} else if (ns4) {
hauteur_aide = document.etiquette.document.height;
largeur_aide = document.etiquette.document.width;
}
positionner (direction);
if (! est_visible) afficher(obj_etiquette);
}
function afficher(obj) {
if (ns4) obj.visibility = "show";
else if (ie4) obj.visibility = "visible";
est_visible = true;
}
function c() { cacher ();}
function cacher () {
if (!((ns4)||(ie4))) return;
if (ns4) obj_etiquette.visibility = "hide";
else if (ie4) obj_etiquette.visibility = "hidden";
est_visible = false;
}
function positionner (direction) {
dir = direction;
if (pos_fixe) { le_x = pos_fixe_x - largeur_aide/2; le_y = pos_fixe_y; }
else if (direction == CENTRE) { le_x = x+decalage_x-largeur_aide/2; le_y = y+decalage_y; }
else if (direction == DROITE) { le_x = x+decalage_x; le_y = y+decalage_y; }
else if (direction == GAUCHE) { le_x = x-decalage_x - largeur_aide; le_y = y+decalage_y; }
if (le_x + largeur_aide > largeur_doc) le_x = largeur_doc - largeur_aide;
if (le_x < 0) le_x = 0;
if (le_y + hauteur_aide > hauteur_doc) le_y = hauteur_doc - hauteur_aide;
if (le_y < 0) le_y = 0;
obj_etiquette.left = le_x;
obj_etiquette.top = le_y;
}
function deplacementSouris(e) {
if (ns4) {x=e.pageX; y=e.pageY;}
if (ie4) {x=event.x; y=event.y;}
if (ie5) {x=event.x+document.body.scrollLeft; y=event.y+document.body.scrollTop;}
if (est_visible) {
positionner (dir);
}
}
////////////// FIN ///////////////////////
ensuite dans ton fichier HTML, tu ajoutes ces 2 lignes :
<DIV ID="etiquette" STYLE="position:absolute; visibility:hide; z-index:0;"></DIV>
<SCRIPT LANGUAGE="JavaScript" SRC="etiquette.js"></SCRIPT>
puis quand tu veux que le layer s'affiche ay dessus d'un lien, tu fais comme ca :
<a
href="javascript:void(0)"
onMouseOut="c()";
onMouseOver="aide('ici tu met du HTML. ex : <img src=youpi.jpg>';">text</a>
remarque : sous netscape, tu ne peux gérer les onMouseXX que sur les liens, mais sous IE tu peut ajouter ca sur à peu pres toutes les balises.
Marsh Posté le 12-12-2001 à 16:00:00
merci
mon boss va croire que je maitrise...
bon mon salaire je vous l'envoie à kel adresse?
Marsh Posté le 12-12-2001 à 17:54:07
art_dupond a écrit a écrit : pour moi, un div est une sorte de layer (que tu peux "monter" ou "descendre" avec z-index). Je me trompe ? |
Non mais c'est super reducteur !!!
Tu peux tout changer dans un div !!!
=> son apparence : couleur (fond, bordure) , visibilité, ...
=> sa forme : longueur, largeur, bordure (epaisseur), ...
=> son contenu : image(s), text, balises, ... (tu peux effacer le contenu d'un div pour le remplacer par autres chose !!!)
=> les evenements : tu peux initialiser la reation à un evenement ou l'enlever à tout moment.
<div id="toto"></div>
document.all.toto.onclick=clic; // clic doit être une fonction javascript
document.all.toto.onclick=null; // la il ne se passe plus rien quand tu cliques
Marsh Posté le 12-12-2001 à 17:56:15
dropsy a écrit a écrit : merci mon boss va croire que je maitrise... bon mon salaire je vous l'envoie à kel adresse? |
Ton boss il ne cherche pas à embaucher par hasard ?
Un gentil ptit ingé info comme ... DarkOli par exemple !!!
Marsh Posté le 12-12-2001 à 17:58:52
DarkOli a écrit a écrit : Ton boss il ne cherche pas à embaucher par hasard ? Un gentil ptit ingé info comme ... DarkOli par exemple !!! |
et le pitit ingé info DarkOli, il saurait pas d'où qu'il pourrait venir mon problème... par hasard ?
http://forum.hardware.fr/forum2.ph [...] &owntopic=
Marsh Posté le 14-12-2001 à 15:53:14
y'a quelqu'un pour donner les fichiers *.js *.gif/*.jpg et *.html, tout ça dans un zip et qui marche parce que moi je comprend pas grand chose à votre truc
Marsh Posté le 15-12-2001 à 12:05:05
http://darkoli.free.fr/js/master_mind/m.htm
http://darkoli.free.fr/js/dragdrop.htm
[edtdd]--Message édité par DarkOli--[/edtdd]
Marsh Posté le 17-12-2001 à 20:49:30
xkamui a écrit a écrit : y'a quelqu'un pour donner les fichiers *.js *.gif/*.jpg et *.html, tout ça dans un zip et qui marche parce que moi je comprend pas grand chose à votre truc |
bha j'ai dit tout ce qu'il fallait faire : t'as plus qu'à recopier les bouts de code !
Marsh Posté le 12-12-2001 à 14:39:51
moi je trouve ca sympa le onmouseover sur les images:
http://www.wallpapers.ru/
mais comment kon fait?
pour faire apparaitre les images par dessus... jlai déjà vu ailleurs, mais g jamais su comment
à tout hasard, g choper le code de la page (enfin fichier enregistrer sous, c pas le plus dur ) mais si qqun c comment ca fonctionne, un ptit indice, un ptit lien vers un tutorial... Enfin, un coup de main koi