Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3041 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Paramètres height/width variables + limite de la fenêtre sous Mozilla

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Paramètres height/width variables + limite de la fenêtre sous Mozilla

n°854205
Ludwig von​ 97
Posté le 20-09-2004 à 16:25:10  profilanswer
 

(Le problème actuel s'est tellement écarté du sujet de départ que j'en crée un nouveau.)
 
J'essaie d'améliorer le javascript suivant sur deux points:
1°- J'aimerais que les paramètres DOTSIZEHEIGTH et DOTSIZEWIDTH puissent varier en fonction des dimensions des différents objet qu'on traite indiquées dans le <div>.
 
J'avais pensé à quelque chose du genre "DOTSIZEHEIGTH = dots[i].obj.height;"à placer dans le for{} concerné ... mais cela ne marche pas ... (éventuellement en faisant de DOTSIZEHEIGTH et DOTSIZEWIDTH)...  enfin, je suis sur qu'il doit y avoir une solution à ce problème.
 
2°-Sous Mozilla/Netscape et compagnie, les images ne rebondissent pas sur le côté droit ni sur le bas de la fenêtre (ni sur le haut mais là c'est normal)
 
Vous pouvez voir fonctionner ce javascript ici:
http://www.webisdead.net/xhtml-index-test.html
(page d'acceuil en reconstruction
 
et là (objets volontairement mal dimensionné, peut provoquer des étirements de la fenêtre ...):
 
http://www.webisdead.net/megaptere
 

Code :
  1. voir plus bas


Message édité par Ludwig von 97 le 20-09-2004 à 23:47:00

---------------
http://www.webisdead.net http://videos.webisdead.net http://folding.webisdead.net
mood
Publicité
Posté le 20-09-2004 à 16:25:10  profilanswer
 

n°854395
Ludwig von​ 97
Posté le 20-09-2004 à 21:13:15  profilanswer
 

Citation :

2°-Sous Mozilla/Netscape et compagnie, les images ne rebondissent pas sur le côté droit ni sur le bas de la fenêtre (ni sur le haut mais là c'est normal)


 
Résolu en remplacant (Sauf que maintenant ça ne rebondit plus sur le bas de Opera :o ) :  
 
if (isNetscape) {  
height = window.innerHeight + document.scrollTop;  
width = window.innerWidth + document.scrollLeft;  
} else {  
height = document.documentElement.clientHeight + document.documentElement.scrollTop;  
width = document.documentElement.clientWidth + document.documentElement.scrollLeft;  
}  
 
par
 
height = document.documentElement.clientHeight + document.documentElement.scrollTop;  
width = document.documentElement.clientWidth + document.documentElement.scrollLeft;  
 
:D
 
Reste problème 1°


Message édité par Ludwig von 97 le 20-09-2004 à 21:15:44

---------------
http://www.webisdead.net http://videos.webisdead.net http://folding.webisdead.net
n°854484
Ludwig von​ 97
Posté le 21-09-2004 à 00:06:19  profilanswer
 

Version finale actuelle de ce javascript pour le moment en ce qui me concerne:
 
demo: http://www.webisdead.net/xhtml-index-test.html
(index.html en reconstruction lente et pas définitive du tout)
 
nouveautés par rapport au début:
 
- compatible XHTML (re-compatible HTML en remplaçant un "documentElement" par "body" )
- compatible avec Netscape/Mozilla/FireFox ... (défaut restant: les éléments ne rebondissent pas sur le bord en bas d'Opera)
- définition de tailles différentes, séparément pour chaque élément
 
 

Code :
  1. <div id="dot9" style="width:384; height:204; position:absolute; top:0; left:0;"><img src="megaptere/megaptere.gif"alt="Baleine" /></div>
  2. <div id="dot8" style="width:1; height:1; position:absolute; top:0; left:0; text-align:left; font-weight:bold"><a href="http://folding.webisdead.net">Folding@Home</a></div>
  3. <div id="dot7" style="width:1; height:1; position:absolute; top:0; left:0;  visibility: hidden;"><img src="images/penguin01.gif"alt="Pingouin" /></div>
  4. <div id="dot6" style="width:1; height:1; position:absolute; top:0; left:0;  visibility: hidden;"><img src="images/penguin01.gif" alt="Pingouin" /></div>
  5. <div id="dot5" style="width:51; height:52; position:absolute; top:0; left:0; "><img src="images/penguin05.gif" alt="Pingouin" /></div>
  6. <div id="dot4" style="width:35; height:60; position:absolute; top:0; left:0; "><img src="images/penguin04.gif" alt="Pingouin" /></div>
  7. <div id="dot3" style="width:28; height:60; position:absolute; top:0; left:0; "><img src="images/penguin03.gif" alt="Pingouin" /></div>
  8. <div id="dot2" style="width:32; height:60; position:absolute; top:0; left:0; "><img src="images/penguin02.gif" alt="Pingouin" /></div>
  9. <div id="dot1" style="width:32; height:60; position:absolute; top:0; left:0; "><img src="images/penguin01.gif" alt="Pingouin" /></div>
  10. <div id="dot0" style="width:1; height:1; position:absolute; top:0; left:0; visibility: hidden;"><img src="images/penguin01.gif" alt="Pingouin" /></div>
  11. <script language="JavaScript" type="text/javascript">
  12. <!-- Original: Philip Winston (pwinston@yahoo.com) Web Site: <http://members.xoom.com/ebullets> -->
  13. <!-- 'Scrolling Fix' by Troels Jakobsen <tjak@get2net.dk> -->
  14. <!-- 'Two dimensions DOTSIZE adaptable element by element' by Ludwig von 97 (http://www.webisdead.net) (!!! DOTSIZEHEIGHT and DOTSIZEWIDTH arrays must be filled manually for now.)  -->
  15. <!-- Adapted for XTHML + Netscape/Mozilla/FireFox/... by GhislainLavoie on <http://www.editeurjavascript.com/forum>, vwphillips on <http://js-x.com/forum> and Ludwig von 97 (http://www.webisdead.net) , thanks to Willy Duitt too -->
  16. <!-- To use in HTML instead of XHTML, replace "documentElements" by "body". Last update 21st September 2004 by Ludwig von 97 (http://www.webisdead.net) -->
  17. <!--
  18. var nDots = 10; // must be equal to the number of elements (including "dot0" )
  19. var Xpos = 0;
  20. var Ypos = 0;
  21. var Ypos = 0;
  22. var DELTAT = .01;
  23. var SEGLEN = 5;
  24. var SPRINGK = 6;
  25. var MASS = 2;
  26. var GRAVITY = 0;
  27. var RESISTANCE = 10;
  28. var STOPVEL = 0.1;
  29. var STOPACC = 0.1;
  30. var BOUNCE = 0.60;
  31. var DOTSIZEHEIGHT = new Array(1,60,60,60,60,52,1,1,10,204); // two dimensions dotsize, must be equal to respective elements height (LV97)
  32. var DOTSIZEWIDTH = new Array(1,32,32,28,35,51,1,1,1,384); // two dimensions dotsize, must be equal to respective elements width (LV97)
  33. var isNetscape = navigator.appName=="Netscape";
  34. var followmouse = true;
  35. var dots = new Array();
  36. init();
  37. function init() {
  38. var i = 0;
  39. for (i = 0; i < nDots; i++) {
  40. dots[i] = new dot(i);
  41. }
  42. if (!isNetscape) {
  43. // I only know how to read the locations of the  
  44. // <LI> items in IE
  45. // skip this for now
  46. // setInitPositions(dots)
  47. }
  48. for (i = 0; i < nDots; i++) {
  49. dots[i].obj.left = dots[i].X+"px"; // "+"px"" (XHTML related) suggested by GhislainLavoie
  50. dots[i].obj.top = dots[i].Y+"px"; // "+"px"" (XHTML related) suggested by GhislainLavoie
  51. }
  52. if (isNetscape) {startanimate();}
  53. else {
  54. // let dots sit there for a few seconds
  55. // since they're hiding on the real bullets
  56. setTimeout("startanimate()", 3000);}}
  57. function dot(i) {this.X = Xpos; this.Y = Ypos; this.dx = 0; this.dy = 0;
  58. this.obj = eval("document.getElementById('dot'+" + i + " ).style" );} // previously "if (isNetscape) {this.obj = eval("document.dot" + i);}" (GhislainLavoie)
  59.                                                                     // previously "else {this.obj = eval("dot" + i + ".style" );}}" (GhislainLavoie)
  60. function startanimate() {setInterval("animate()", 20);}
  61. function setInitPositions(dots) {
  62. var startloc = document.all.tags("LI" );
  63. var i = 0;
  64. for (i = 0; i < startloc.length && i < (nDots - 1); i++) {
  65. dots[i+1].X = startloc[i].offsetLeft
  66. startloc[i].offsetParent.offsetLeft - DOTSIZEWIDTH[i]; // two dimension dotsize + adaptable width (LV97)
  67. dots[i+1].Y = startloc[i].offsetTop +
  68. startloc[i].offsetParent.offsetTop + 2*DOTSIZEHEIGHT[i]; // two dimension dotsize + adaptable height (LV97)
  69. }
  70. dots[0].X = dots[1].X;
  71. dots[0].Y = dots[1].Y - SEGLEN;
  72. }
  73. function MoveHandler(e) {
  74. Xpos = e.pageX;
  75. Ypos = e.pageY;  
  76. return true;
  77. }
  78. function MoveHandlerIE() {
  79. Xpos = window.event.x + document.documentElement.scrollLeft; // previously "documentElement" --> "body" (LV97)
  80. Ypos = window.event.y + document.documentElement.scrollTop; // previously "documentElement" --> "body" (LV97)
  81. }
  82. if (isNetscape) {
  83. // "document.captureEvents(Event.MOUSEMOVE);" <-- removed by GhislainLavoie
  84. document.onmousemove = MoveHandler;
  85. } else {
  86. document.onmousemove = MoveHandlerIE;
  87. }
  88. function vec(X, Y)
  89. {this.X = X;
  90. this.Y = Y;}
  91. // adds force in X and Y to spring for dot[i] on dot[j]
  92. function springForce(i, j, spring)
  93. {
  94. var dx = (dots[i].X - dots[j].X);
  95. var dy = (dots[i].Y - dots[j].Y);
  96. var len = Math.sqrt(dx*dx + dy*dy);
  97. if (len > SEGLEN) {
  98. var springF = SPRINGK * (len - SEGLEN);
  99. spring.X += (dx / len) * springF;
  100. spring.Y += (dy / len) * springF;
  101. }}
  102. function animate(){
  103. var start = 0;
  104. if (followmouse){
  105. dots[0].X = Xpos;
  106. dots[0].Y = Ypos;
  107. start = 1;
  108. }
  109. for (i = start ; i < nDots; i++ ) {
  110. var spring = new vec(0, 0);
  111. if (i > 0) {
  112. springForce(i-1, i, spring);
  113. }
  114. if (i < (nDots - 1)) {
  115. springForce(i+1, i, spring);
  116. }
  117. var resist = new vec(-dots[i].dx * RESISTANCE, -dots[i].dy * RESISTANCE);
  118. var accel = new vec((spring.X + resist.X)/ MASS, (spring.Y + resist.Y)/ MASS + GRAVITY);
  119. dots[i].dx += (DELTAT * accel.X);
  120. dots[i].dy += (DELTAT * accel.Y);
  121. if (Math.abs(dots[i].dx) < STOPVEL &&
  122. Math.abs(dots[i].dy) < STOPVEL &&
  123. Math.abs(accel.X) < STOPACC &&
  124. Math.abs(accel.Y) < STOPACC) {
  125. dots[i].dx = 0;
  126. dots[i].dy = 0;
  127. }
  128. dots[i].X += dots[i].dx;
  129. dots[i].Y += dots[i].dy;
  130. var height, width;
  131. height = document.documentElement.clientHeight + document.documentElement.scrollTop;
  132. width = document.documentElement.clientWidth + document.documentElement.scrollLeft;
  133. // the two above lines: previously "if (isNetscape) {height = window.innerHeight + document.scrollTop; width = window.innerWidth + document.scrollLeft;} else {height = document.body.clientHeight + document.body.scrollTop; width = document.body.clientWidth + document.body.scrollLeft;}" (LV97 & vwphillips)
  134. if (dots[i].Y >=  height - DOTSIZEHEIGHT[i] - 1) { // two dimensions dotsize adapted + adaptable height (LV97)
  135. if (dots[i].dy > 0) {
  136. dots[i].dy = BOUNCE * -dots[i].dy;
  137. }
  138. dots[i].Y = height - DOTSIZEHEIGHT[i] - 1; // two dimensions dotsize adapted + adaptable height (LV97)
  139. }
  140. if (dots[i].X >= width - DOTSIZEWIDTH[i] - 1) { // two dimensions dotsize adapted + adaptable width (LV97)
  141. if (dots[i].dx > 0) {
  142. dots[i].dx = BOUNCE * -dots[i].dx;
  143. }
  144. dots[i].X = width - DOTSIZEWIDTH[i] - 1; // two dimensions dotsize adapted + adaptable width (LV97)
  145. }
  146. if (dots[i].X < 0) {
  147. if (dots[i].dx < 0) {
  148. dots[i].dx = BOUNCE * -dots[i].dx;
  149. }
  150. dots[i].X = 0;
  151. }
  152. dots[i].obj.left = dots[i].X+"px"; // "+"px"" (XHTML related) suggested by GhislainLavoie    
  153. dots[i].obj.top = dots[i].Y+"px"; // "+"px"" (XHTML related) suggested by GhislainLavoie
  154. }}
  155. --></script>


---------------
http://www.webisdead.net http://videos.webisdead.net http://folding.webisdead.net

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Paramètres height/width variables + limite de la fenêtre sous Mozilla

 

Sujets relatifs
femer 2 fenetre depuis 1 PopupModifier fenetre rechercher de ie
[CSS] Alternative à min-heightConversion site IE>Mozilla, PLZ help!
Décalage des variables?XHTML + CSS valid : décalage aléatoire avec Firefox et Mozilla
fenetre d'attente sous VBAProbleme Mozilla/IE
[C#] "Geler" la fenêtre lors de la modification de contrôles ?OK sous IE et Opéra mais pas sous mozilla [résolu]
Plus de sujets relatifs à : Paramètres height/width variables + limite de la fenêtre sous Mozilla


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR