Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/01/2011, 07h15   #1
Invité de passage
 
Inscription : juin 2009
Messages : 10
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 10
Points : 0
Points : 0
Par défaut effet zoom incompatible firefox 3.6.13

Bonjour,
je dispose d'un script permettant un zoom sur un texte qu'on peut voir ici http://www.activetech.fr
Depuis la dernière mise à jour de Firefox vers Firefox 3.6.13, ce script ne fonctionne plus.
Je n'y connais rien en Javascript, comment modifier ce script pour qu'il fonctionne de nouveau ?
Code :
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
<script type="text/javascript">
                 i=0;
                 taille=0;
                 hauteur = (navigator.appName != "Microsoft Internet Explorer")? window.innerHeight : document.body.offsetHeight;
                 marge = hauteur/3;
                 document.getElementsByTagName('div')[0].style.marginTop = marge;
                 textanim = new Array("LE PLUS COURT CHEMIN<br/>ENTRE VOUS<br/>ET VOTRE MARCHE !");
                 function animation() {
                 document.getElementsByTagName('div')[0].style.fontSize = ""+taille+"px";
                 document.getElementsByTagName('div')[0].style.color = "#ec7523";
                 document.getElementsByTagName('div')[0].style.fontFamily = "arial";
                 document.getElementById('bienvenue').innerHTML = textanim[i];
                 if (taille < 40) {
                 taille++;
                 }
                 else {
                 i++;
                 taille=0;
                 }
                 if (i < textanim.length) {
                 setTimeout('animation()',20)
                 }
                 }
                 setTimeout('animation()',20);
                 //</script><noscript>LE PLUS COURT CHEMIN<br/>ENTRE VOUS<br/>ET VOTRE MARCHE !</noscript>
midnightweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2011, 09h54   #2
Expert Confirmé
 
Avatar de javatwister
 
Homme
danseur
Inscription : août 2003
Messages : 2 667
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : danseur

Informations forums :
Inscription : août 2003
Messages : 2 667
Points : 3 035
Points : 3 035
je ne comprends pas le 2e appel à setTimeout;

de +, fox te signale des propriétés css inconnues;

soit dit en passant, pourquoi les 2 syntaxes

Code :
document.getElementsByTagName('div')[0]
et
Code :
document.getElementById('bienvenue')
pour désigner le même élément?
javatwister est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/01/2011, 15h25   #3
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 930
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 930
Points : 4 744
Points : 4 744
Citation:
Envoyé par javatwister
je ne comprends pas le 2e appel à setTimeout;
le 1st setTimeout semble servir au lancement de la fonction,un appel simple est suffisant.
toutes cette partie
Code :
1
2
3
4
document.getElementsByTagName('div')[0].style.fontSize = "" + taille + "px";
document.getElementsByTagName('div')[0].style.color = "#ec7523";
document.getElementsByTagName('div')[0].style.fontFamily = "arial";
document.getElementById('bienvenue').innerHTML = textanim[i];
pourrait avantageusement être remplacée par
Code :
1
2
3
4
5
6
7
8
var oDiv = document.getElementById('bienvenue');
oDiv.style.fontSize = "" + taille + "px";
// ce qui suit n'est pas indispensable puisque constant 
// a mettre dans la feuille de style donc
oDiv.style.color = "#ec7523";
oDiv.style.fontFamily = "arial";
// pourquoi passer par un tableau puisqu'il n'a qu'un indice
oDiv.innerHTML = textanim[i];
enfin pour répondre à
Citation:
Envoyé par midnightweb
Depuis la dernière mise à jour de Firefox vers Firefox 3.6.13, ce script ne fonctionne plus.
c'est surprenant effectivement, une nouvelle gestion de setTimeout????
Citation:
Envoyé par midnightweb
comment modifier ce script pour qu'il fonctionne de nouveau ?
outre ce qui a déjà été dit, déplace l'écriture dans le test sur i, visiblement il y a lecture dans un indice de tableau non initialisé
Code :
1
2
3
4
if (i < textanim.length) {
  document.getElementById('bienvenue').innerHTML = textanim[i];
  setTimeout('animation()', 20)
}
cela reste grandement simplifiable et améliorable d'un strict point de vue de codage.
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/01/2011, 08h11   #4
Invité de passage
 
Inscription : juin 2009
Messages : 10
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 10
Points : 0
Points : 0
Bonjour et merci pour toutes ces réponses.

A vrai dire, n'y connaissant rien en Javascript, je vais tenter d'appliquer vos conseils, mais je n'y comprends rien
midnightweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h46.


 
 
 
 
Partenaires

Hébergement Web