Accueil > > > UNE DEMI-HORLOGE À AIGUILLES ENTIÈREMENT PARAMETRABLE
UNE DEMI-HORLOGE À AIGUILLES ENTIÈREMENT PARAMETRABLE
Information sur la source
Description
Pas besoin de long discours, c'est une horloge à cadran, mais au lieu d'un cadran de 360° celui-ci n'en fait que 180°. Pratique si vous n'avez pas beaucoup de place pour mettre une horoge à aiguilles classique. Vous pouvez régler la hauteur et la largeur séparément (plus paramétrage de la taille de police, de la couleur, du sens de rotation, ...).
Source
- <html>
- <style>
- div { position:absolute;font-family:Arial;text-align:center;font-weight:bold }
- </style>
-
- <script language="JavaScript">
- sensRotation = 1; //sens de rotation de l'horloge (1 sans normal / -1 sans inverse)
- fCol='000000'; //face colour.
- sCol='FF6701'; //seconds colour.
- mCol='0000FF'; //minutes colour.
- hCol='FF0000'; //hours colour.
- cCol='000000'; //couleur du contour.
- ClockHeight=50; //rayon de la hauteur de l'horloge
- ClockWidth=70; //rayon de la largeur de l'horloge
-
- Contour='·············';
- Contour=Contour.split('');
- H='····';
- H=H.split('');
- M='······';
- M=M.split('');
- S='······';
- S=S.split('');
-
- if (sensRotation == 1) { Face='0 1 2 3 4 5 6 7 8 9 10 11 12'; }
- else { Face='12 11 10 9 8 7 6 5 4 3 2 1 0'; }
-
- size=11; //taille de la police de caractère des chiffres
- psize=18; //taille de la police de caractère des aiguilles
- Face=Face.split(' ');
- n=Face.length;
- Split=Math.PI/(n-1); //angle entre chaque chiffre du cadran
- HandHeight=ClockHeight/S.length;
- HandWidth=ClockWidth/S.length;
-
- document.write('<div id="horloge" style="position:relative">');
-
- for (i=0; i < Contour.length; i++)
- document.write('<div id="ieContour" style="font-size:'+psize+'px;color:'+cCol+'">'+Contour[i]+'</div>');
-
- for (i=0; i < n; i++)
- document.write('<div id="ieFace" style="font-size:'+size+'px;color:'+fCol+'">'+Face[i]+'</div>');
-
- for (i=0; i < H.length; i++)
- document.write('<div id="ieHours" style="font-size:'+psize+'px;color:'+hCol+'">'+H[i]+'</div>');
-
- for (i=0; i < M.length; i++)
- document.write('<div id="ieMinutes" style="font-size:'+psize+'px;color:'+mCol+'">'+M[i]+'</div>');
-
- for (i=0; i < S.length; i++)
- document.write('<div id="ieSeconds" style="font-size:'+psize+'px;color:'+sCol+'">'+S[i]+'</div>');
-
- document.write('</div>');
-
- function ClockAndAssign(){
- time = new Date ();
- sec = Math.PI * time.getSeconds()/60;
- sec = sensRotation * sec;
- min = Math.PI * time.getMinutes()/60;
- min = sensRotation * min;
- hrs = Math.PI * ((time.getHours() + time.getMinutes()/60)%12)/12;
- hrs = sensRotation * hrs;
-
- for (i=0; i < Contour.length; i++){
- var C=ieContour[i].style;
- C.top=ClockHeight - ClockHeight*Math.sin(i*Math.PI/(Contour.length-1));
- C.left=ClockWidth - ClockWidth*Math.cos(i*Math.PI/(Contour.length-1));
- }
-
- for (i=0; i < n; i++){
- var F=ieFace[i].style;
- F.top=ClockHeight - (ClockHeight+10)*Math.sin(i*Split);
- F.left=ClockWidth - (ClockWidth+10)*Math.cos(i*Split);
- }
-
- for (i=0; i < H.length; i++){
- var HL=ieHours[i].style;
- HL.top= ClockHeight - (i*HandHeight)*(sensRotation*Math.sin(hrs));
- HL.left=ClockWidth - (i*HandWidth)*(sensRotation*Math.cos(hrs));
- }
-
- for (i=0; i < M.length; i++){
- var ML=ieMinutes[i].style;
- ML.top=ClockHeight - (i*HandHeight)*(sensRotation*Math.sin(min));
- ML.left=ClockWidth - (i*HandWidth)*(sensRotation*Math.cos(min));
- }
-
- for (i=0; i < S.length; i++){
- var SL=ieSeconds[i].style;
- SL.top=ClockHeight - (i*HandHeight)*(sensRotation*Math.sin(sec));
- SL.left=ClockWidth - (i*HandWidth)*(sensRotation*Math.cos(sec));
- }
-
- setTimeout('ClockAndAssign()',20);
- }
-
- window.onload=ClockAndAssign;
- </script>
- </html>
<html>
<style>
div { position:absolute;font-family:Arial;text-align:center;font-weight:bold }
</style>
<script language="JavaScript">
sensRotation = 1; //sens de rotation de l'horloge (1 sans normal / -1 sans inverse)
fCol='000000'; //face colour.
sCol='FF6701'; //seconds colour.
mCol='0000FF'; //minutes colour.
hCol='FF0000'; //hours colour.
cCol='000000'; //couleur du contour.
ClockHeight=50; //rayon de la hauteur de l'horloge
ClockWidth=70; //rayon de la largeur de l'horloge
Contour='·············';
Contour=Contour.split('');
H='····';
H=H.split('');
M='······';
M=M.split('');
S='······';
S=S.split('');
if (sensRotation == 1) { Face='0 1 2 3 4 5 6 7 8 9 10 11 12'; }
else { Face='12 11 10 9 8 7 6 5 4 3 2 1 0'; }
size=11; //taille de la police de caractère des chiffres
psize=18; //taille de la police de caractère des aiguilles
Face=Face.split(' ');
n=Face.length;
Split=Math.PI/(n-1); //angle entre chaque chiffre du cadran
HandHeight=ClockHeight/S.length;
HandWidth=ClockWidth/S.length;
document.write('<div id="horloge" style="position:relative">');
for (i=0; i < Contour.length; i++)
document.write('<div id="ieContour" style="font-size:'+psize+'px;color:'+cCol+'">'+Contour[i]+'</div>');
for (i=0; i < n; i++)
document.write('<div id="ieFace" style="font-size:'+size+'px;color:'+fCol+'">'+Face[i]+'</div>');
for (i=0; i < H.length; i++)
document.write('<div id="ieHours" style="font-size:'+psize+'px;color:'+hCol+'">'+H[i]+'</div>');
for (i=0; i < M.length; i++)
document.write('<div id="ieMinutes" style="font-size:'+psize+'px;color:'+mCol+'">'+M[i]+'</div>');
for (i=0; i < S.length; i++)
document.write('<div id="ieSeconds" style="font-size:'+psize+'px;color:'+sCol+'">'+S[i]+'</div>');
document.write('</div>');
function ClockAndAssign(){
time = new Date ();
sec = Math.PI * time.getSeconds()/60;
sec = sensRotation * sec;
min = Math.PI * time.getMinutes()/60;
min = sensRotation * min;
hrs = Math.PI * ((time.getHours() + time.getMinutes()/60)%12)/12;
hrs = sensRotation * hrs;
for (i=0; i < Contour.length; i++){
var C=ieContour[i].style;
C.top=ClockHeight - ClockHeight*Math.sin(i*Math.PI/(Contour.length-1));
C.left=ClockWidth - ClockWidth*Math.cos(i*Math.PI/(Contour.length-1));
}
for (i=0; i < n; i++){
var F=ieFace[i].style;
F.top=ClockHeight - (ClockHeight+10)*Math.sin(i*Split);
F.left=ClockWidth - (ClockWidth+10)*Math.cos(i*Split);
}
for (i=0; i < H.length; i++){
var HL=ieHours[i].style;
HL.top= ClockHeight - (i*HandHeight)*(sensRotation*Math.sin(hrs));
HL.left=ClockWidth - (i*HandWidth)*(sensRotation*Math.cos(hrs));
}
for (i=0; i < M.length; i++){
var ML=ieMinutes[i].style;
ML.top=ClockHeight - (i*HandHeight)*(sensRotation*Math.sin(min));
ML.left=ClockWidth - (i*HandWidth)*(sensRotation*Math.cos(min));
}
for (i=0; i < S.length; i++){
var SL=ieSeconds[i].style;
SL.top=ClockHeight - (i*HandHeight)*(sensRotation*Math.sin(sec));
SL.left=ClockWidth - (i*HandWidth)*(sensRotation*Math.cos(sec));
}
setTimeout('ClockAndAssign()',20);
}
window.onload=ClockAndAssign;
</script>
</html>
Conclusion
Pour ceux qui souhaitent voir ce que ca donne, une petite image ! Pour le moment ca ne fonctionne que sous Internet Explorer, je n'ai pas encore pris le temps de tester sous Netscape.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|