Bonjour,
J'ai un petit problème de javascript, encore.
J4ai récupéré un script pour afficher un menu flottant, pour
garder l'entête du tableau même si on ne la voit plus car le tableau
est trop grand.
Je l'ai ensuite bidouillé (comme j'ai pu, je connais rien à Javascript)
pour le rendre vertical, car les entrées de mon tableau sont à gauche, non
en haut.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 if (!document.layers) document.write('</div>') <script> if (!document.layers) document.write('<div id="divStayTopLeft" style="position:absolute">') </script> <layer id="divStayTopLeft"> <table> <!-- mon menu--> </table> </layer> function JSFX_FloatTopDiv() { var startX = 920 ; var startY = 399 ; /*if (screen.width==1024 ) { startX=600 ; startY=399 ; } else if (screen.width==1280) { startX=889 ; startY=685 ; } else if (screen.width==1400) { startX=914 ; startY=712 ; } else if (screen.width==1600){ startX=1050 ; startY=862 ; }*/ var ns = (navigator.appName.indexOf("Netscape") != -1); var d = document; function ml(id) { var el=d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id]; if(d.layers) el.style=el; el.sP=function(x,y){this.style.left=x;this.style.top=y;}; el.x = startX; el.y = ns ? pageYOffset + innerHeight : document.body.scrollTop + document.body.clientHeight; el.y -= startY; return el; } window.stayTopLeft=function() { var pX = ns ? pageXOffset + innerWidth : document.body.scrollTop + document.body.clientWidth; ftlObj.x += (pX - startX - ftlObj.x)/5; ftlObj.sP(ftlObj.x,ftlObj.y); setTimeout("stayTopLeft()", 10); if(ftlObj.x>90) ftlObj.style.display="inline"; else ftlObj.style.display="none"; //none } ftlObj = ml("divStayTopLeft"); stayTopLeft(); } JSFX_FloatTopDiv();
Ca marche, le menu se déplace bien en fonction de la scroll bar. Mais j'ai un problème pour la position de départ. Mon application est sur un serveur d'appli, et quand je passe d'une machine à une autre, la position par rapport à la page change (que ce soit ou non la même résolution)
Sur mon ordi, qd je redémarre mon serveur et accède au tableau, la position change...
Je pensais qu'il s'agissait d'une position absolue, définie par les variables
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 var startX = 920 ; var startY = 399 ;
Quelqu'un peut m'expliquer ce qui ne va pas dans le code ?
Merci
--> ici est le code originel pour un menu horizontal, peut ê que mes modifs y sont ^pour qq chose ?
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 function JSFX_FloatTopDiv() { var startX = 5, startY = 50; var ns = (navigator.appName.indexOf("Netscape") != -1); var d = document; function ml(id) { var el=d.getElementById?d.getElementById(id):d.all?d.all[id]:d.layers[id]; if(d.layers)el.style=el; el.sP=function(x,y){this.style.left=x;this.style.top=y;}; el.x = startX; el.y = ns ? pageYOffset + innerHeight : document.body.scrollTop + document.body.clientHeight; el.y -= startY; return el; } window.stayTopLeft=function() { var pY = ns ? pageYOffset + innerHeight : document.body.scrollTop + document.body.clientHeight; ftlObj.y += (pY - startY - ftlObj.y)/8; ftlObj.sP(ftlObj.x, ftlObj.y); setTimeout("stayTopLeft()", 10); } ftlObj = ml("divStayTopLeft"); stayTopLeft(); } JSFX_FloatTopDiv(); </script>
Partager