Question pour Scipt

Question pour Scipt - HTML/CSS - Programmation

Marsh Posté le 15-04-2009 à 18:25:28    

bonjour à tous  
 
j'aurais une question à vous poser  
 
j'ai un script qui marche sur IE 6,7 et 8 et non sur firefox  
 
j'aimerais savoir s'il est possible de le rendre compatible avec firefox
 
merci d'avance
 
voici le script

Code :
  1. <SCRIPT language="Javascript">
  2. dCol='#FFFFF'; // COULEUR DE LA DATE
  3. fCol='#FFFFF'; // COULEUR DU TEXTE
  4. sCol='#FFFFF'; // COULEUR DES SECONDES
  5. mCol='#FFFFF'; // COULEUR DES MINUTES
  6. hCol='#FFFFF'; // COULEUR DES HEURES
  7. ClockHeight=40; // LARGEUR DE L'HORLOGE
  8. ClockWidth=40; // HAUTEUR DE L'HORLOGE
  9. ClockFromMouseY=60; // DISTANCE VERTICALE DU CURSEUR
  10. ClockFromMouseX=60; // DISTANCE HORIZONTALE DU CURSEUR
  11. d=new Array("DIMANCHE","LUNDI","MARDI","MERCREDI","JEUDI","VENDREDI","SAMEDI" );
  12. m=new Array("JANVIER","FEVRIER","MARS","AVRIL","MAI","JUIN","JUILLET","AOUT","SEPTEMBRE","OCTOBRE","NOVEMBRE","DECEMBRE" );
  13. date=new Date();
  14. day=date.getDate();
  15. year=date.getYear();
  16. if (year < 2000) year=year+1900;
  17. TodaysDate=" "+d[date.getDay()]+" "+day+" "+m[date.getMonth()]+" "+year;
  18. D=TodaysDate.split('');
  19. H='....';
  20. H=H.split('');
  21. M='.....';
  22. M=M.split('');
  23. S='......';
  24. S=S.split('');
  25. Face='1 2 3 4 5 6 7 8 9 10 11 12';
  26. font='Verdana';
  27. size=1;
  28. speed=.6;
  29. ns=(document.layers);
  30. ie=(document.all);
  31. Face=Face.split(' ');
  32. n=Face.length;
  33. a=size*1;
  34. ymouse=12;
  35. xmouse=0;
  36. scrll=0;
  37. props="<font face="+font+" size="+size+" color="+fCol+">";
  38. props2="<font face="+font+" size="+size+" color="+dCol+"><B>";
  39. Split=360/n;
  40. Dsplit=360/D.length;
  41. HandHeight=ClockHeight/4.5
  42. HandWidth=ClockWidth/4.5
  43. HandY=-7;
  44. HandX=-2.5;
  45. scrll=0;
  46. step=0.04;
  47. currStep=0;
  48. y=new Array();x=new Array();Y=new Array();X=new Array();
  49. for (i=0; i < n; i++){y[i]=0;x[i]=0;Y[i]=0;X[i]=0}
  50. Dy=new Array();Dx=new Array();DY=new Array();DX=new Array();
  51. for (i=0; i < D.length; i++){Dy[i]=0;Dx[i]=0;DY[i]=0;DX[i]=0}
  52. if (ns){
  53. for (i=0; i < D.length; i++)
  54. document.write('<layer name="nsDate'+i+'" top=0 left=0 height='+a+' width='+a+'><center>'+props2+D[i]+'</font></center></layer>');
  55. for (i=0; i < n; i++)
  56. document.write('<layer name="nsFace'+i+'" top=0 left=0 height='+a+' width='+a+'><center>'+props+Face[i]+'</font></center></layer>');
  57. for (i=0; i < S.length; i++)
  58. document.write('<layer name=nsSeconds'+i+' top=0 left=0 width=15 height=15><font face=Arial size=3 color='+sCol+'><center><b>'+S[i]+'</b></center></font></layer>');
  59. for (i=0; i < M.length; i++)
  60. document.write('<layer name=nsMinutes'+i+' top=0 left=0 width=15 height=15><font face=Arial size=3 color='+mCol+'><center><b>'+M[i]+'</b></center></font></layer>');
  61. for (i=0; i < H.length; i++)
  62. document.write('<layer name=nsHours'+i+' top=0 left=0 width=15 height=15><font face=Arial size=3 color='+hCol+'><center><b>'+H[i]+'</b></center></font></layer>');
  63. }
  64. if (ie){
  65. document.write('<div id="Od" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
  66. for (i=0; i < D.length; i++)
  67. document.write('<div id="ieDate" style="position:absolute;top:0px;left:0;height:'+a+';width:'+a+';text-align:center">'+props2+D[i]+'</B></font></div>');
  68. document.write('</div></div>');
  69. document.write('<div id="Of" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
  70. for (i=0; i < n; i++)
  71. document.write('<div id="ieFace" style="position:absolute;top:0px;left:0;height:'+a+';width:'+a+';text-align:center">'+props+Face[i]+'</B></font></div>');
  72. document.write('</div></div>');
  73. document.write('<div id="Oh" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
  74. for (i=0; i < H.length; i++)
  75. document.write('<div id="ieHours" style="position:absolute;width:16px;height:16px;font-family:Arial;font-size:16px;color:'+hCol+';text-align:center;font-weight:bold">'+H[i]+'</div>');
  76. document.write('</div></div>');
  77. document.write('<div id="Om" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
  78. for (i=0; i < M.length; i++)
  79. document.write('<div id="ieMinutes" style="position:absolute;width:16px;height:16px;font-family:Arial;font-size:16px;color:'+mCol+';text-align:center;font-weight:bold">'+M[i]+'</div>');
  80. document.write('</div></div>')
  81. document.write('<div id="Os" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
  82. for (i=0; i < S.length; i++)
  83. document.write('<div id="ieSeconds" style="position:absolute;width:16px;height:16px;font-family:Arial;font-size:16px;color:'+sCol+';text-align:center;font-weight:bold">'+S[i]+'</div>');
  84. document.write('</div></div>')
  85. }
  86. (ns)?window.captureEvents(Event.MOUSEMOVE):0;
  87. function Mouse(evnt){
  88. ymouse = (ns)?evnt.pageY+ClockFromMouseY-(window.pageYOffset):event.y+ClockFromMouseY;
  89. xmouse = (ns)?evnt.pageX+ClockFromMouseX:event.x+ClockFromMouseX;
  90. }
  91. (ns)?window.onMouseMove=Mouse:document.onmousemove=Mouse;
  92. function ClockAndAssign(){
  93. time = new Date ();
  94. secs = time.getSeconds();
  95. sec = -1.57 + Math.PI * secs/30;
  96. mins = time.getMinutes();
  97. min = -1.57 + Math.PI * mins/30;
  98. hr = time.getHours();
  99. hrs = -1.575 + Math.PI * hr/6+Math.PI*parseInt(time.getMinutes())/360;
  100. if (ie){
  101. Od.style.top=window.document.body.scrollTop;
  102. Of.style.top=window.document.body.scrollTop;
  103. Oh.style.top=window.document.body.scrollTop;
  104. Om.style.top=window.document.body.scrollTop;
  105. Os.style.top=window.document.body.scrollTop;
  106. }
  107. for (i=0; i < n; i++){
  108. var F=(ns)?document.layers['nsFace'+i]:ieFace[i].style;
  109. F.top=y[i] + ClockHeight*Math.sin(-1.0471 + i*Split*Math.PI/180)+scrll;
  110. F.left=x[i] + ClockWidth*Math.cos(-1.0471 + i*Split*Math.PI/180);
  111. }
  112. for (i=0; i < H.length; i++){
  113. var HL=(ns)?document.layers['nsHours'+i]:ieHours[i].style;
  114. HL.top=y[i]+HandY+(i*HandHeight)*Math.sin(hrs)+scrll;
  115. HL.left=x[i]+HandX+(i*HandWidth)*Math.cos(hrs);
  116. }
  117. for (i=0; i < M.length; i++){
  118. var ML=(ns)?document.layers['nsMinutes'+i]:ieMinutes[i].style;
  119. ML.top=y[i]+HandY+(i*HandHeight)*Math.sin(min)+scrll;
  120. ML.left=x[i]+HandX+(i*HandWidth)*Math.cos(min);
  121. }
  122. for (i=0; i < S.length; i++){
  123. var SL=(ns)?document.layers['nsSeconds'+i]:ieSeconds[i].style;
  124. SL.top=y[i]+HandY+(i*HandHeight)*Math.sin(sec)+scrll;
  125. SL.left=x[i]+HandX+(i*HandWidth)*Math.cos(sec);
  126. }
  127. for (i=0; i < D.length; i++){
  128. var DL=(ns)?document.layers['nsDate'+i]:ieDate[i].style;
  129. DL.top=Dy[i] + ClockHeight*1.5*Math.sin(currStep+i*Dsplit*Math.PI/180)+scrll;
  130. DL.left=Dx[i] + ClockWidth*1.5*Math.cos(currStep+i*Dsplit*Math.PI/180);
  131. }
  132. currStep-=step;
  133. }
  134. function Delay(){
  135. scrll=(ns)?window.pageYOffset:0;
  136. Dy[0]=Math.round(DY[0]+=((ymouse)-DY[0])*speed);
  137. Dx[0]=Math.round(DX[0]+=((xmouse)-DX[0])*speed);
  138. for (i=1; i < D.length; i++){
  139. Dy[i]=Math.round(DY[i]+=(Dy[i-1]-DY[i])*speed);
  140. Dx[i]=Math.round(DX[i]+=(Dx[i-1]-DX[i])*speed);
  141. }
  142. y[0]=Math.round(Y[0]+=((ymouse)-Y[0])*speed);
  143. x[0]=Math.round(X[0]+=((xmouse)-X[0])*speed);
  144. for (i=1; i < n; i++){
  145. y[i]=Math.round(Y[i]+=(y[i-1]-Y[i])*speed);
  146. x[i]=Math.round(X[i]+=(x[i-1]-X[i])*speed);
  147. }
  148. ClockAndAssign();
  149. setTimeout('Delay()',20);
  150. }
  151. if (ns||ie)window.onload=Delay;
  152. </SCRIPT>

Reply

Marsh Posté le 15-04-2009 à 18:25:28   

Reply

Marsh Posté le 15-04-2009 à 21:32:24    

waaaa il date de 10 ans ton truc,
 
en gros c'est pour faire quoi ? je te le fait en propre et plus simple

Reply

Marsh Posté le 15-04-2009 à 22:31:57    

oui il est vieux je le reconnais  
 
le but de se script et d'avoir l'heure et la date a coter du curseur de la souris

Reply

Marsh Posté le 15-04-2009 à 23:19:28    

scorpio63000 a écrit :

oui il est vieux je le reconnais  
 
le but de se script et d'avoir l'heure et la date a coter du curseur de la souris


C'est vrai que c'est le genre de fonctionnalités que les utilisateurs demandent beaucoup :ange:  
Sinon pour debugger du javascript sur Firefox, tu peux commencer par utiliser l'addon firebug, il t'indiquera au moins la ligne responsable du ( des?) problème(s).


---------------
Fresh
Reply

Marsh Posté le 16-04-2009 à 09:25:15    

Ce que la console d'erreur de Firefox fait aussi soit dit en passant. (Ctrl + Shift + J)


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 16-04-2009 à 13:40:29    

voici l'erreur que sa me met quand je fais Ctrl + Shift + J

Code :
  1. ymouse = (ns)?evnt.pageY+ClockFromMouseY-(window.pageYOffset):event.y+ClockFromMouseY; Ligne : 199

Reply

Marsh Posté le 16-04-2009 à 13:44:20    

Manque un e au premier event

Reply

Marsh Posté le 16-04-2009 à 13:49:19    

le script dais comme l'image si dessous sauf que la date tourne autour de l'horloge
 
http://nsa06.casimages.com/img/2009/04/16/mini_090416014717194329.jpg

Reply

Marsh Posté le 16-04-2009 à 14:05:55    

ouai plus compliqué ducoup; mais deja pour recuper les jours et faire bouger en fonction de la souris tu peux faire ca

 

<style type="text/css" media="all">
  .date {
   position:absolute;
   z-index:999;
   margin:15px 0 0 15px;
  }
 </style>
 <script type="text/javascript">
   // <![CDATA[
    if (window.addEventListener){
     window.addEventListener("load", addOnLoad, true);
    } else if (window.attachEvent) {
     window.attachEvent("onload", addOnLoad);
    }
   
    var el = null;
   
    function addOnLoad(){
     el = document.createElement('div');
     el.className = 'date';
     document.body.appendChild(el);
     
     document.onmousemove = moveDate;
     window.setInterval(showDate, 1000);    
    }
    function showDate(){
     var date = new Date();
     el.innerHTML = date.toLocaleDateString() + ' ' + date.toLocaleTimeString();
    }
   
    function moveDate(e){
     var x = null;
     var y = null;
     
     if(e){
      x = e.clientX;
      y = e.clientY;
     }else if(event){
      x = event.x;
      y = event.y;
     }
     
     el.style.left = x + 'px';
     el.style.top = y + 'px';
    }
   // ]]>
  </script>


Message édité par stealth35 le 16-04-2009 à 14:07:30
Reply

Marsh Posté le 16-04-2009 à 14:32:18    

merci je vais essayer voir se que sa donne
 
re cela donne un truc tous banale  
 
merci quand même


Message édité par scorpio63000 le 16-04-2009 à 14:35:58
Reply

Marsh Posté le 16-04-2009 à 14:32:18   

Reply

Marsh Posté le 16-04-2009 à 15:01:21    

voila, a toi d'ajouter l'horologe apres ;)
 

<style type="text/css" media="all">
  body{
   font-family:"Lucida Sans Unicode","Lucida Grande",sans-serif
  }
  .date {
   position:absolute;
   z-index:999;
   margin:20px 0 0 20px;
   background-color:#8888ff;
   width:160px;
   height:160px;
  }
  .date span{
   position:absolute;
   font-size:10px;
   font-weight:bold;
   color:#f0f0f0;
  }
 </style>
 <script type="text/javascript">
   // <![CDATA[
    if (window.addEventListener){
     window.addEventListener("load", addOnLoad, true);
    } else if (window.attachEvent) {
     window.attachEvent("onload", addOnLoad);
    }
     
    var el = null;
    var time = [];
     
    function addOnLoad(){
     el = document.createElement('div');
     el.className = 'date';
     document.body.appendChild(el);
     
     rot = document.createElement('div');
     el.appendChild(rot);  
     
     for(var i = 1; i <= 12; i++){
      var a = -(((i / 6) * Math.PI) + (Math.PI * 3));
       
      var span = document.createElement('span');
      span.innerHTML = i;
      span.style.top = 75 + (40 * Math.cos(a)) + 'px';
      span.style.left = 75 + (40 * Math.sin(a)) + 'px';
      el.appendChild(span);
     }
     
     for(var i = 0; i < 3; i++){
      time[i] = [];
      for(var j = 0; j < (i + 3); j++){
       var span = document.createElement('span');
       span.innerHTML = '.';
       el.appendChild(span);
       
       time[i].push(span);
      }
     }
     
     document.onmousemove = moveDate;
     window.setInterval(showDate, 1000);    
    }
    function showDate(){
     var date = new Date();
     var c = [];
     c.push(-((date.getHours() * .5) / 12) * (Math.PI * 2));
     c.push((date.getMinutes() / 60) * (Math.PI * 2));
     c.push(-(date.getSeconds() / 60) * (Math.PI * 2));  
 
 
     for(var i = 0; i < 3; i++){
      for(var j = 0; j < time[i].length; j++){
       time[i][j].style.top = 75 + ((j * 7) * Math.cos(c[i])) + 'px';
       time[i][j].style.left = 75 + ((j * 7) * Math.sin(c[i])) + 'px';
      }
     }
     
     var str = date.toLocaleDateString();
     rot.innerHTML = '';
     
     for(var i = 0; i < str.length; i++){
      var b = (i / str.length) * (Math.PI * 2) + ((date.getSeconds() / 60) * Math.PI);
      var l = str.slice(i, i + 1);
       
      var span = document.createElement('span');
      span.innerHTML = l;
       
      span.style.left = 75 + 60 * Math.cos(b) + 'px';
      span.style.top = 75 + 60 * Math.sin(b) + 'px';
       
      rot.appendChild(span);      
     }
    }
     
    function moveDate(e){
     var x = null;
     var y = null;
     
     if(e){
      x = e.clientX;
      y = e.clientY;
     }else if(event){
      x = event.x;
      y = event.y;
     }
     
     el.style.left = x + 'px';
     el.style.top = y + 'px';
    }
   // ]]>  
  </script>


Message édité par stealth35 le 16-04-2009 à 15:01:56
Reply

Marsh Posté le 16-04-2009 à 15:10:47    

merci merci merci cela fonctionne  
 
mais comment rendre l'arrière plan de l'horloge transparente car la j'ai un carré violet très clair et l'horloge dessus
 
que veut tu dire quand tu dis a toi d'ajouter l'horloge après
 
merci d'avance

Reply

Marsh Posté le 16-04-2009 à 18:28:05    

en couleur dans le css  tu met  "transparent"
pour l'horloge faut l'ajoute le calucle sinus cosinus n'est pas bon, faut decalé de xPI

Reply

Marsh Posté le 16-04-2009 à 18:40:38    

Ok sa a marcher pour la transparence encore merci  
 
pour l'horloge faut l'ajoute le calucle sinus cosinus n'est pas bon, faut decalé de xPI
 
pas compris
 
PS: dommage avec se code sa met l'horloge fixe quand on déplace la souris qu'avec celui que j'ai fournie plus haut quand on deplacer la souris l'horloge flotter et se remetter normalement quand on arreter de bouger la souris

Reply

Marsh Posté le 16-04-2009 à 19:31:48    

tu voix bien que c'est pas a l'heure...,  si t'a un niveau en math au dessus de la 6eme tu devrais t'en sortir,  
apres pour le déplacement rien t'empeche de le decalé pour faire une effet de flottement,
en meme temps ce code il sert a rien, tout le monde a l'heure sur son ordi  
;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed