Azrael24
Messages postés3Date d'inscriptionvendredi 2 juin 2006StatutMembreDernière intervention 6 juin 2006
-
2 juin 2006 à 18:54
Azrael24
Messages postés3Date d'inscriptionvendredi 2 juin 2006StatutMembreDernière intervention 6 juin 2006
-
6 juin 2006 à 18:26
Bonjour à tous.
je m'inicie au javascript et le "petit" script que j'ai mis sur mon site ne marche que sous IE.
<script language= "JavaScript">//Couleurs
dCol='FFFFFF'; //Couleur de la date
fCol='#FFFF00'; //Couleur des chiffres de l'horloge
sCol='FFFFFF'; //Couleur des secondes
mCol='#80FFFF'; //Couleur des minutes
hCol='#80FFFF'; //Couleur des heures
ClockHeight=40;
ClockWidth=40;
ClockFromMouseY=0;
ClockFromMouseX=100;
//Noms de jours et de mois
d=new Array("DIMANCHE","LUNDI","MARDI","MERCREDI","JEUDI","VENDREDI","SAMEDI"); //Noms de jours
m=new Array("JANVIER","FÉVRIER","MARS","AVRIL","MAI","JUIN","JUILLET","AOUT","SEPTEMBRE","OCTOBRE","NOVEMBRE","DECEMBRE"); //Noms des mois
date=new Date();
day=date.getDate();
year=date.getYear();
if (year < 2000) year=year+1900;
TodaysDate=" "+d[date.getDay()]+" "+day+" "+m[date.getMonth()]+" "+year;
D=TodaysDate.split('');
H='...';
H=H.split('');
M='....';
M=M.split('');
S='.....';
S=S.split('');
Face='1 2 3 4 5 6 7 8 9 10 11 12';
font='Arial';
size=1;
speed=0.6;
ns=(document.layers);
ie=(document.all);
Face=Face.split(' ');
n=Face.length;
a=size*10;
ymouse=0;
xmouse=0;
scrll=0;
props="";
props2="";
Split=360/n;
Dsplit=360/D.length;
HandHeight=ClockHeight/4.5
HandWidth=ClockWidth/4.5
HandY=-7;
HandX=-2.5;
scrll=0;
step=0.06;
currStep=0;
y=new Array();x=new Array();Y=new Array();X=new Array();
for (i=0; i < n; i++){y[i]=0;x[i]=0;Y[i]=0;X[i]=0}
Dy=new Array();Dx=new Array();DY=new Array();DX=new Array();
for (i=0; i < D.length; i++){Dy[i]=0;Dx[i]=0;DY[i]=0;DX[i]=0}
if (ns){
for (i=0; i < D.length; i++)
document.write('<layer name="nsDate'+i+'" top=0 left=0 height='+a+' width='+a+'><center>'+props2+D[i]+'</center></layer>');
for (i=0; i < n; i++)
document.write('<layer name="nsFace'+i+'" top=0 left=0 height='+a+' width='+a+'><center>'+props+Face[i]+'</center></layer>');
for (i=0; i < S.length; i++)
document.write('<layer name=nsSeconds'+i+' top=0 left=0 width=15 height=15><center> '+S[i]+' </center></layer>');
for (i =0; i < M.length; i++)
document.write('<layer name= nsMinutes'+i+' top=0 left=0 width=15 height=15><center> '+M[i]+' </center></layer>');
for (i =0; i < H.length; i++)
document.write('<layer name= nsHours'+i+' top=0 left=0 width=15 height=15><center> '+H[i]+' </center></layer>');
}
if (ie){
document.write('
');
for (i =0; i < D.length; i++)
document.write('
'+props2+D[i]+'
');
document.write('
');
document.write('
');
for (i=0; i < n; i++)
document.write('
'+props+Face[i]+'
');
document.write('
');
document.write('
');
for (i=0; i < H.length; i++)
document.write('
'+H[i]+'
');
document.write('
');
document.write('
');
for (i=0; i < M.length; i++)
document.write('
'+M[i]+'
');
document.write('
')
document.write('
');
for (i=0; i < S.length; i++)
document.write('
'+S[i]+'
');
document.write('
')
}
(ns)?window.captureEvents(Event.MOUSEMOVE):0;
function Mouse(evnt){
ymouse = (ns)?evnt.pageY+ClockFromMouseY-(window.pageYOffset):event.y+ClockFromMouseY;
xmouse = (ns)?evnt.pageX+ClockFromMouseX:event.x+ClockFromMouseX;
}
(ns)?window.onMouseMove=Mouse:document.onmousemove=Mouse;
function ClockAndAssign(){
time = new Date ();
secs = time.getSeconds();
sec = -1.57 + Math.PI * secs/30;
mins = time.getMinutes();
min = -1.57 + Math.PI * mins/30;
hr = time.getHours();
hrs = -1.575 + Math.PI * hr/6+Math.PI*parseInt(time.getMinutes())/360;
if (ie){
Od.style.top=window.document.body.scrollTop;
Of.style.top=window.document.body.scrollTop;
Oh.style.top=window.document.body.scrollTop;
Om.style.top=window.document.body.scrollTop;
Os.style.top=window.document.body.scrollTop;
}
for (i=0; i < n; i++){
var F=(ns)?document.layers['nsFace'+i]:ieFace[i].style;
F.top=y[i] + ClockHeight*Math.sin(-1.0471 + i*Split*Math.PI/180)+scrll;
F.left=x[i] + ClockWidth*Math.cos(-1.0471 + i*Split*Math.PI/180);
}
for (i=0; i < H.length; i++){
var HL=(ns)?document.layers['nsHours'+i]:ieHours[i].style;
HL.top=y[i]+HandY+(i*HandHeight)*Math.sin(hrs)+scrll;
HL.left=x[i]+HandX+(i*HandWidth)*Math.cos(hrs);
}
for (i=0; i < M.length; i++){
var ML=(ns)?document.layers['nsMinutes'+i]:ieMinutes[i].style;
ML.top=y[i]+HandY+(i*HandHeight)*Math.sin(min)+scrll;
ML.left=x[i]+HandX+(i*HandWidth)*Math.cos(min);
}
for (i=0; i < S.length; i++){
var SL=(ns)?document.layers['nsSeconds'+i]:ieSeconds[i].style;
SL.top=y[i]+HandY+(i*HandHeight)*Math.sin(sec)+scrll;
SL.left=x[i]+HandX+(i*HandWidth)*Math.cos(sec);
}
for (i=0; i < D.length; i++){
var DL=(ns)?document.layers['nsDate'+i]:ieDate[i].style;
DL.top=Dy[i] + ClockHeight*1.5*Math.sin(currStep+i*Dsplit*Math.PI/180)+scrll;
DL.left=Dx[i] + ClockWidth*1.5*Math.cos(currStep+i*Dsplit*Math.PI/180);
}
currStep-=step;
}
function Delay(){
scrll=(ns)?window.pageYOffset:0;
Dy[0]=Math.round(DY[0]+=((ymouse)-DY[0])*speed);
Dx[0]=Math.round(DX[0]+=((xmouse)-DX[0])*speed);
for (i=1; i < D.length; i++){
Dy[i]=Math.round(DY[i]+=(Dy[i-1]-DY[i])*speed);
Dx[i]=Math.round(DX[i]+=(Dx[i-1]-DX[i])*speed);
}
y[0]=Math.round(Y[0]+=((ymouse)-Y[0])*speed);
x[0]=Math.round(X[0]+=((xmouse)-X[0])*speed);
for (i=1; i < n; i++){
y[i]=Math.round(Y[i]+=(y[i-1]-Y[i])*speed);
x[i]=Math.round(X[i]+=(x[i-1]-X[i])*speed);
}
ClockAndAssign();
setTimeout('Delay()',20);
}
if (ns||ie)window.onload=Delay; </script>
sous firefox il m'affiche une erreur "event nor defined" ligne 124 dans la console javascript
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 6 juin 2006 à 17:17
B
onjour...
Tout d'abord au vue du code que tu proposes tu n'as pas placé les modif au bon endroit...
if (NETSCAPE){
ymouse = evnt.pageY+ClockFromMouseY-window.pageYOffset ;
xmouse = evnt.pageX+ClockFromMouseX;
}
else{
ymouse = event.y+ClockFromMouseY;
xmouse = event.x+ClockFromMouseX;
}
}
Il fallait les mettre dans la fonction
function Mouse(evnt)
Quoi qu'il en soit ta source n'est pas compatible DOM donc pas FireFox...
...tu te retrouves avec tout un tas de
qui ont le "ID"
comment faire le distinguo quand le navigateur ne pocéde pas la notion de document.all...
Je crois malheuresement qu'il va falloir que tu mettes la main à la pâte...
Azrael24
Messages postés3Date d'inscriptionvendredi 2 juin 2006StatutMembreDernière intervention 6 juin 2006 6 juin 2006 à 18:26
merci de votre contribution a mon probleme.
On vient de me corriger ce script et il marche a merveille sur tous les navigateurs que j'utilise, je reviendrais
vous voir quand je m'y connaitrais un peu plus pour essayer de comprendre le pourquoi du comment.
voici le code corrigé
<script language= "JavaScript">//Couleurs
dCol='FFFFFF'; //Couleur de la date
fCol='#FFFF00'; //Couleur des chiffres de l'horloge
sCol='FFFFFF'; //Couleur des secondes
mCol='#80FFFF'; //Couleur des minutes
hCol='#80FFFF'; //Couleur des heures
ClockHeight=40;
ClockWidth=40;
ClockFromMouseY=0;
ClockFromMouseX=100;
//Noms de jours et de mois
d=new Array("DIMANCHE","LUNDI","MARDI","MERCREDI","JEUDI","VENDREDI","SAMEDI"); //Noms de jours
m=new Array("JANVIER","FÉVRIER","MARS","AVRIL","MAI","JUIN","JUILLET","AOUT","SEPTEMBRE","OCTOBRE","NOVEMBRE","DECEMBRE"); //Noms des mois
date=new Date();
day=date.getDate();
year=date.getYear();
if (year < 2000) year=year+1900;
TodaysDate=" "+d[date.getDay()]+" "+day+" "+m[date.getMonth()]+" "+year;
D=TodaysDate.split('');
H='...';
H=H.split('');
M='....';
M=M.split('');
S='.....';
S=S.split('');
Face='1 2 3 4 5 6 7 8 9 10 11 12';
font='Arial';
size=1;
speed=0.6;
ns=(document.layers);
ie=(document.all);
dom=(document.getElementById && !document.all);
Face=Face.split(' ');
n=Face.length;
a=size*10;
ymouse=0;
xmouse=0;
scrll=0;
props="";
props2="";
Split=360/n;
Dsplit=360/D.length;
HandHeight=ClockHeight/4.5
HandWidth=ClockWidth/4.5
HandY=-7;
HandX=-2.5;
scrll=0;
step=0.06;
currStep=0;
y=new Array();x=new Array();Y=new Array();X=new Array();
for (i=0; i < n; i++){y[i]=0;x[i]=0;Y[i]=0;X[i]=0}
Dy=new Array();Dx=new Array();DY=new Array();DX=new Array();
for (i=0; i < D.length; i++){Dy[i]=0;Dx[i]=0;DY[i]=0;DX[i]=0}
if (ns){
for (i=0; i < D.length; i++)
document.write('<layer name="nsDate'+i+'" top=0 left=0 height='+a+' width='+a+'><center>'+props2+D[i]+'</center></layer>');
for (i=0; i < n; i++)
document.write('<layer name="nsFace'+i+'" top=0 left=0 height='+a+' width='+a+'><center>'+props+Face[i]+'</center></layer>');
for (i=0; i < S.length; i++)
document.write('<layer name=nsSeconds'+i+' top=0 left=0 width=15 height=15><center> '+S[i]+' </center></layer>');
for (i =0; i < M.length; i++)
document.write('<layer name= nsMinutes'+i+' top=0 left=0 width=15 height=15><center> '+M[i]+' </center></layer>');
for (i =0; i < H.length; i++)
document.write('<layer name= nsHours'+i+' top=0 left=0 width=15 height=15><center> '+H[i]+' </center></layer>');
}
if (ie || dom){
document.write('
');
for (i =0; i < D.length; i++)
document.write('
'+props2+D[i]+'
');
document.write('
');
document.write('
');
for (i=0; i < n; i++)
document.write('
'+props+Face[i]+'
');
document.write('
');
document.write('
');
for (i=0; i < H.length; i++)
document.write('
'+H[i]+'
');
document.write('
');
document.write('
');
for (i=0; i < M.length; i++)
document.write('
'+M[i]+'
');
document.write('
')
document.write('
');
for (i=0; i < S.length; i++)
document.write('
'+S[i]+'
');
document.write('
function ClockAndAssign(){
time = new Date ();
secs = time.getSeconds();
sec = -1.57 + Math.PI * secs/30;
mins = time.getMinutes();
min = -1.57 + Math.PI * mins/30;
hr = time.getHours();
hrs = -1.575 + Math.PI * hr/6+Math.PI*parseInt(time.getMinutes())/360;
if (ie||dom){
document.getElementById('Od').style.top=window.document.body.scrollTop;
document.getElementById('Of').style.top=window.document.body.scrollTop;
document.getElementById('Oh').style.top=window.document.body.scrollTop;
document.getElementById('Om').style.top=window.document.body.scrollTop;
document.getElementById('Os').style.top=window.document.body.scrollTop;
}
for (i=0; i < n; i++){
var F=(ns)?document.layers['nsFace'+i]:document.getElementById('ieFace'+i).style;
F.top=y[i] + ClockHeight*Math.sin(-1.0471 + i*Split*Math.PI/180)+scrll;
F.left=x[i] + ClockWidth*Math.cos(-1.0471 + i*Split*Math.PI/180);
}
for (i=0; i < H.length; i++){
var HL=(ns)?document.layers['nsHours'+i]:document.getElementById('ieHours'+i).style;
HL.top=y[i]+HandY+(i*HandHeight)*Math.sin(hrs)+scrll;
HL.left=x[i]+HandX+(i*HandWidth)*Math.cos(hrs);
}
for (i=0; i < M.length; i++){
var ML=(ns)?document.layers['nsMinutes'+i]:document.getElementById('ieMinutes'+i).style;
ML.top=y[i]+HandY+(i*HandHeight)*Math.sin(min)+scrll;
ML.left=x[i]+HandX+(i*HandWidth)*Math.cos(min);
}
for (i=0; i < S.length; i++){
var SL=(ns)?document.layers['nsSeconds'+i]:document.getElementById('ieSeconds'+i).style;
SL.top=y[i]+HandY+(i*HandHeight)*Math.sin(sec)+scrll;
SL.left=x[i]+HandX+(i*HandWidth)*Math.cos(sec);
}
for (i=0; i < D.length; i++){
var DL=(ns)?document.layers['nsDate'+i]:document.getElementById('ieDate'+i).style;
DL.top=Dy[i] + ClockHeight*1.5*Math.sin(currStep+i*Dsplit*Math.PI/180)+scrll;
DL.left=Dx[i] + ClockWidth*1.5*Math.cos(currStep+i*Dsplit*Math.PI/180);
}
currStep-=step;
}
function Delay(){
scrll=(ns||dom)?window.pageYOffset:0;
Dy[0]=Math.round(DY[0]+=((ymouse)-DY[0])*speed);
Dx[0]=Math.round(DX[0]+=((xmouse)-DX[0])*speed);
for (i=1; i < D.length; i++){
Dy[i]=Math.round(DY[i]+=(Dy[i-1]-DY[i])*speed);
Dx[i]=Math.round(DX[i]+=(Dx[i-1]-DX[i])*speed);
}
y[0]=Math.round(Y[0]+=((ymouse)-Y[0])*speed);
x[0]=Math.round(X[0]+=((xmouse)-X[0])*speed);
for (i=1; i < n; i++){
y[i]=Math.round(Y[i]+=(y[i-1]-Y[i])*speed);
x[i]=Math.round(X[i]+=(x[i-1]-X[i])*speed);
}
ClockAndAssign();
setTimeout('Delay()',20);
}
if (ns||ie||dom)window.onload=Delay; </script>