Aide correctif pour javascript matrix sous ff

Aide correctif pour javascript matrix sous ff - HTML/CSS - Programmation

Marsh Posté le 24-09-2014 à 19:15:44    

Bonjour, je suis venu ici pour solliciter votre aide afin de corriger un script qui décorait mon site internet il y a une dizaine d'années et que j'adorais, il s'agissait d'une petite pluie de matrice (seulement composé de 1 et de 0) qui se calait à droite des pages et qui coulait tout doucement indéfinement.
 
je me suis toujours débrouiller pour bidouiller le mysql, le php, le html, le design, mais je suis dans l'impasse totale pour ce qui est de corriger un javascript et le rendre compatible sous firefox
 
ce que je sais c'est qu'il peut certainement fonctionner mais qu'il est très très vieux et son codage doit être totalement infâme
 
je n'en ai jamais retrouvé l'équivalent sur le net  
 
donc voilà
 
ça donne ça avec mon aperçu d'édfiteur html (ça marche sous ie mais pas ff)
 
http://matrixemxs.cluster007.ovh.net/gni.png
http://matrixemxs.cluster007.ovh.net/gni2.png


Message édité par matrixian2 le 27-09-2014 à 19:21:57
Reply

Marsh Posté le 24-09-2014 à 19:15:44   

Reply

Marsh Posté le 24-09-2014 à 19:16:40    

et voilà le code contenu dans la page, je n'utilise pas de fichier .css ni defichier  js extérieur
 
(il faut le placer après la balise body pour qu'il marche)
 
J'ai essayé de comprendre et tenter de résoudre le truc moi-même mais sans succès (firebug etc...)  
 

Code :
  1. <SCRIPT language=JavaScript>
  2. if (document.all){
  3. Cols=4;
  4. Cl=20;
  5. Cs=15;
  6. Ts=14;
  7. Tc='#008800';
  8. Tc1='#00ff00';
  9. MnS=6;
  10. MxS=6;
  11. I=Cs;
  12. Sp=new Array();S=new Array();Y=new Array();
  13. C=new Array();M=new Array();B=new Array();
  14. RC=new Array();E=new Array();Tcc=new Array(0,0);
  15. document.write("<div id='Container' style='position:absolute;top:0;right:-"+Cs+"'>" );
  16. document.write("<div style='position:relative'>" );
  17. for(i=0; i < Cols; i++){
  18. S[i]=I+=Cs;
  19. document.write("<div id='A' style='position:absolute;top:0;font-family:comic sans ms;font-size:"
  20. +Ts+"px;right:"+S[i]+";width:"+Ts+"px;height:0px;color:"+Tc+";visibility:hidden'></div>" );
  21. }
  22. document.write("</div></div>" );
  23. for(j=0; j < Cols; j++){
  24. RC[j]=1+Math.round(Math.random()*Cl); 
  25. Y[j]=0;
  26. Sp[j]=Math.round(MnS+Math.random()*MxS);
  27. for(i=0; i < RC[j]; i++){
  28. B[i]='';
  29. C[i]=Math.round(Math.random()*1)+' ';
  30. M[j]=B[0]+=C[i];
  31. }
  32. }
  33. function Cycle(){
  34. Container.style.top=window.document.body.scrollTop;
  35. for (i=0; i < Cols; i++){
  36. var r = Math.floor(Math.random()*Tcc.length);
  37. E[i] = '<font color='+Tc1+'>'+Tcc[r]+'</font>';
  38. Y[i]+=Sp[i];
  39. if (Y[i] > window.document.body.clientHeight){
  40. for(i2=0; i2 < Cols; i2++){
  41. RC[i2]=1+Math.round(Math.random()*Cl); 
  42. for(i3=0; i3 < RC[i2]; i3++){
  43. B[i3]='';
  44. C[i3]=Math.round(Math.random()*1)+' ';
  45. C[Math.floor(Math.random()*i2)]=' '+' ';
  46. M[i]=B[0]+=C[i3];
  47. Y[i]=-Ts*M[i].length/1.5;
  48. A[i].style.visibility='visible';
  49. }
  50. Sp[i]=Math.round(MnS+Math.random()*MxS);
  51. }
  52. }
  53. A[i].style.top=Y[i];
  54. A[i].innerHTML=M[i]+' '+E[i]+' ';
  55. }
  56. setTimeout('Cycle()',20)
  57. }
  58. Cycle();
  59. }
  60. <!--Fin du Script-->
  61. </SCRIPT>


Message édité par matrixian2 le 24-09-2014 à 19:27:50
Reply

Marsh Posté le 25-09-2014 à 15:37:28    

Regarde du côté de scrollTop et de clientHeight qui doivent poser problème sous FF.
 
Une balise <script type="text/javascript"> est aussi plus appropriée à mon avis.

Reply

Marsh Posté le 25-09-2014 à 20:17:16    

Hmm, il y a bien plus que ça qui merde: manque des unités dans les déclarations CSS. "document.all": même sur les versions récentes d'IE, ça ne fonctionnera pas. La table "A" automatiquement déclarée: spécifique à IE. J'ai essayé de remettre ça au propre, mais l'effet n'est pas terrible. Pour les générations futures :

Code :
  1. (function(){
  2. var Cols=4, Cl=20, Cs=15, Ts=14
  3. var Tc='#008800', Tc1='#00ff00', MnS=6, MxS=6
  4. var Sp = [], Y = [], M = [], RC = [], Tcc = [0, 1], A = []
  5. document.write("<div id='Container' style='position:fixed;top:0;right:"+Cs+"px'>" )
  6. for (var i = 1; i <= Cols; i++)
  7. {
  8.  document.write("<div style='position:absolute;top:0;font-family:sans-serif;font-size:"+
  9.    Ts+"px;right:"+(i*Cs)+"px;width:"+Ts+"px;height:0;color:"+Tc+";visibility:hidden'></div>" )
  10. }
  11. document.write("</div>" )
  12.  
  13. var root = document.getElementById("Container" )
  14.  
  15. for (i = 0; i < Cols; i++)
  16. {
  17.  Y[i]  = 0
  18.  Sp[i] = Math.round(MnS+Math.random()*MxS)
  19.  A[i]  = root.childNodes[i]
  20. }
  21.  
  22. function Cycle()
  23. {
  24.  for (var i = 0; i < Cols; i++)
  25.  {
  26.    var r = Math.floor(Math.random()*Tcc.length)
  27.    r = '<font color='+Tc1+'>'+Tcc[r]+'</font>'
  28.    Y[i]+=Sp[i]
  29.  
  30.    if (Y[i] > (window.innerHeight || document.documentElement.clientHeight))
  31.    {
  32.      M[i]=''
  33.      RC[i]=1+Math.round(Math.random()*Cl)
  34.      for (var j = 0; j < RC[i]; j++)
  35.        M[i]+=Tcc[Math.floor(Math.random()*Tcc.length)]+' '
  36.      Sp[i]=Math.round(MnS+Math.random()*MxS)
  37.      A[i].style.visibility='visible'
  38.      Y[i]=-Ts*M[i].length/1.5
  39.    }
  40.    A[i].style.top=Y[i]+"px"
  41.    A[i].innerHTML=M[i]+' '+r+' '
  42.  }
  43. }
  44. window.setInterval(Cycle, 20)
  45. })();


Message édité par tpierron le 29-09-2014 à 21:44:46
Reply

Marsh Posté le 26-09-2014 à 09:39:24    

merci rien que pour vos réponses déjà pour tenter d'éclaircir le truc.
 
j'ai posté le même sujet sur d'autres forums de javascript afin de recueillir d'autres suggestions, pour l'instant on m' a dit qu'il manquait des petites choses comme les pixs et qu'il fallait supprimer la déclaration mais même après ces modifs, le script n'apparait oujours pas sous firefox
 
par contre voici une page de démo qui vous montre l'effet marchant sous ie (pour que vous ayez une idée du truc, mais pas sur firefox :/ ):  
 
http://matrixemxs.cluster007.ovh.net/matrix.php  
 

Reply

Marsh Posté le 26-09-2014 à 09:53:04    

on m'a dit la même chose sur un autre topic tpierron http://codes-sources.commentcamarc [...] us-firefox
 
j'ai fait les modifs mais bon pas de changement... et j'ai posté d'autres liens de démo de scripts du meme genre si tu veux y jeter un oeil

Reply

Marsh Posté le 26-09-2014 à 09:56:58    

revoici le code avec les correctifs ajoutés (mais il n'est toujours pas visible sous ff)
 
 

Code :
  1. <SCRIPT>
  2. Cols=4;
  3. Cl=20;
  4. Cs=15;
  5. Ts=14;
  6. Tc='#008800';
  7. Tc1='#00ff00';
  8. MnS=6;
  9. MxS=6;
  10. I=Cs;
  11. Sp=new Array();S=new Array();Y=new Array();
  12. C=new Array();M=new Array();B=new Array();
  13. RC=new Array();E=new Array();Tcc=new Array(0,0);
  14. document.write("<div id='Container' style='position:absolute;top:0;right:-"+Cs+"'>" );
  15. document.write("<div style='position:relative'>" );
  16. for(i=0; i < Cols; i++){
  17. S[i]=I+=Cs;
  18. document.write("<div id='A' style='position:absolute;top:0;font-family:comic sans ms;font-size:"
  19. +Ts+"px;right:"+S[i]+";width:"+Ts+"px;height:0px;color:"+Tc+";visibility:visible'></div>" );
  20. }
  21. document.write("</div></div>" );
  22. for(j=0; j < Cols; j++){
  23. RC[j]=1+Math.round(Math.random()*Cl); 
  24. Y[j]=0;
  25. Sp[j]=Math.round(MnS+Math.random()*MxS);
  26. for(i=0; i < RC[j]; i++){
  27. B[i]='';
  28. C[i]=Math.round(Math.random()*1)+' ';
  29. M[j]=B[0]+=C[i];
  30. }
  31. }
  32. function Cycle(){
  33. Container.style.top=window.document.body.scrollTop+'px';
  34. for (i=0; i < Cols; i++){
  35. var r = Math.floor(Math.random()*Tcc.length);
  36. E[i] = '<font color='+Tc1+'>'+Tcc[r]+'</font>';
  37. Y[i]+=Sp[i];
  38. if (Y[i] > window.document.body.clientHeight){
  39. for(i2=0; i2 < Cols; i2++){
  40. RC[i2]=1+Math.round(Math.random()*Cl); 
  41. for(i3=0; i3 < RC[i2]; i3++){
  42. B[i3]='';
  43. C[i3]=Math.round(Math.random()*1)+' ';
  44. C[Math.floor(Math.random()*i2)]=' '+' ';
  45. M[i]=B[0]+=C[i3];
  46. Y[i]=-Ts*M[i].length/1.5;
  47. A[i].style.visibility='visible';
  48. }
  49. Sp[i]=Math.round(MnS+Math.random()*MxS);
  50. }
  51. }
  52. A[i].style.top=Y[i]+'px';
  53. A[i].innerHTML=M[i]+' '+E[i]+' ';
  54. }
  55. setTimeout('Cycle()',20)
  56. }
  57. Cycle();
  58. <!--Fin du Script-->
  59. </SCRIPT>


 
J'en ai trouvé un qui lui ressemblait et qui fonctionne sous firefox mais il ne donne pas l'effet escompté et est buggé (lignes qui s'inversent, fenêtré, vitesse folle, apparition de scrollbar intempestive lors de la mise en place vers la droite etc...)
http://matrixemxs.cluster007.ovh.net/matrix4.htm


Message édité par matrixian2 le 26-09-2014 à 10:00:18
Reply

Marsh Posté le 26-09-2014 à 13:01:37    

Une petite remarque en passant : prévois un bouton pour arrêter l'animation. D'une part parce qu'une animation distrait le visiteur de sa lecture du site. D'autre part, l'animation peut créer des crises chez les épileptiques :/
 
Edit : donc mon avis (tout personnel) est que tu te casses la tête pour qq chose d'inutile :o


Message édité par rufo le 26-09-2014 à 13:02:26

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 27-09-2014 à 19:14:24    

Je comprends ton point de vue rufo , ça peut partaître inutile mais j'en suis tombé amoureux de ce script faut pas chercher à comprendre, j'ai qu'un rêve c'est de le revoir fonctionnel sur mon site car il lui "manque" le petit quelque chose qu'il avait avant sans ce javascript, comme s'il n'était pas complet et qu'une grosse partie de sa "personnalité" (oui je vais loin lol) qui faisait son charme n'était plus là :D

Reply

Marsh Posté le 27-09-2014 à 19:15:47    

je suis en train de chercher des solutions sur plein d'autres forums je m'acharne d'ailleurs à trouver CELUI qui accomplira le miracle que je cherche lol :)  
 
un autre topic que j'ai posté sur le sujet et qui fait état de mes avancées de"ssus :  
 
http://www.developpez.net/forums/d [...] ost7979744

Reply

Marsh Posté le 27-09-2014 à 19:15:47   

Reply

Marsh Posté le 27-09-2014 à 19:18:06    

il y a un autre truc qui lui ressemble et que j'ai trouvé mais qu'il faudrait adapter car il bugge dès qu'on essaie de le bouger et il y a plein de trucs qui merdent (lignes inversés, mode fenêtré, apparition de scrollbar intempestive quand on le met à droite de la page, vitesse dix fois trop rapide etc...) mais seulement sur firefox car encore une fois sur ie il est parfait
 
page de démo : http://matrixemxs.cluster007.ovh.net/matrix4.htm
 
http://matrixemxs.cluster007.ovh.net/gni5.png
 
il faudrait que la pluie aille uniquement vers le bas et de manière toute douce et apaisante, pas comme ici ou tu te tapes un violdes yeux dès que tu le regardes :sarcastic: je cherche je cherche...


Message édité par matrixian2 le 27-09-2014 à 20:39:45
Reply

Marsh Posté le 29-09-2014 à 21:46:41    

Heu, chais pas si tu es au courant, mais le script que j'ai posté est sensé fonctionner avec firefox (j'ai rajouté une petite correction pour IE).
 
Bon, j'ai du déduire ce qu'il faisait parce que le code ne fonctionnait même plus dans IE8. Pas sur d'avoir tout remis comme il faut...

Reply

Sujets relatifs:

Leave a Replay

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