FORUM Tom's Hardware » Programmation » HTML / Javascript » Paramètres height/width variables + limite de la fenêtre sous Mozilla
 

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

Il y a 250 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici



Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Paramètres height/width variables + limite de la fenêtre sous Mozilla
 

(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 21-09-2004 à 00:06:55

---------------
http://www.webisdead.net/ - http://videos.webisdead.net/
Equipe webisdead.net de Folding@Home

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:53

---------------
http://www.webisdead.net/ - http://videos.webisdead.net/
Equipe webisdead.net de Folding@Home

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/
Equipe webisdead.net de Folding@Home

Aller à :
 
  FORUM Tom's Hardware » Programmation » HTML / Javascript » Paramètres height/width variables + limite de la fenêtre sous Mozilla

Annonces Google
Publicité
Actualités relatives

Mozilla 1.6 Alpha

Publié le 01 November 2003

Mozilla vient de sortir la nouvelle version 1.6 de sa suite Internet. Si ce n'est encore que la version Alpha, voici ce qui est au programme pour les plus impatients : Ajout de la possibilité d'avoir des colonnes séparées pour l'émetteur Lire la suite

Navigateur Mozilla 1.7.6 : l&#039;ultime version

Publié le 22 March 2005

Nous vous l’annoncions récemment (voir cette actualité), la fondation Mozilla a décidé de stopper le développement de la suite Mozilla dans le but de se concentrer sur son nouveau navigateur fétiche : Mozilla Firefox. Elle travaillera également sur le Lire la suite

Mozilla Firefox 0.8 et Thunderbird 0.5 en français

Publié le 16 February 2004

Nous vous avions annoncé les mises en lige du navigateur internet Mozilla Firefox 0.8, feu Firebird, ainsi que celle du client email Mozilla ThunderBird 0.5. Désormais, grâce au travail de l'équipe internationale de traducteurs, de correcteurs et de Lire la suite

Mozilla Thunderbird version 0.5 disponible

Publié le 10 February 2004

Nous vous annoncions hier dans cette actualité la mise en ligne du navigateur internet Mozilla Firefox version 0.8 ex Mozilla Firebird, sachez qu'une nouvelle version du client mail Mozilla ThunderBird est désormais disponible. Cette nouvelle versi Lire la suite

Les derniers tests

Charts cartes graphiques Q3 2008 : 101 cartes testées

Publié le 29 September 2008

Les charts de 101 cartes graphiques anciennes et récentes sous 9 applications, avec au total 6767 scores. Quel gain attendre du remplacement de votre carte graphique par un nouveau modèle dans chaque application/résolution et en moyenne ? Lire la suite

Upgrader son portable en 9 leçons

Publié le 29 September 2008

Profiter au mieux de son PC portable en 9 leçons. Lire la suite

Que choisir ? Home Cinema 5.1 ou projecteur de son ?

Publié le 25 September 2008

Faut-il craquer pour un ensemble 5.1 ou pour une barre de son ? Découvrez les forces et faiblesses comparées de chaque système. Lire la suite

Intel Core i7 (Nehalem) : une architecture signée AMD ?

Publié le 25 September 2008

Avec ses nouveaux processeurs Core i7, Intel fait évoluer les Core 2 en reprenant leur architecture, mais en lui rajoutant des technologies dont la plupart semblent avoir leur équivalent direct chez AMD. Impression ou réalité ? Lire la suite

Les ressources relatives