Accueil > > > UN CHRONOMETRE EN SVG+JAVASCRIPT
UN CHRONOMETRE EN SVG+JAVASCRIPT
Information sur la source
Description
c'est une modification de ma source : http://www.javascriptfr.com/codes/DOM-SVG-HORLOG E-ANALOGIQUE_43173.aspx pour pouvoir afficher un cronometre et repondre a la question : http://www.javascriptfr.com/infomsg.aspx?ID=1068 108
Source
- <?xml version="1.0" standalone="no"?>
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
- <svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" >
-
- <g stroke="black">
- <line x1="50" x2="50" y1="50" y2="5" stroke-width=".5" id="secondes" />
- <line x1="50" x2="50" y1="50" y2="15" stroke-width="1" id="minutes" />
- </g>
- <g stroke="black" id="marques">
- <circle cx="50" cy="50" r="3" stroke-width="1" fill="white" id="small"/>
- </g>
- <circle cx="5" cy="5" r="5" stroke-width="1" fill="blue" onclick="bouton_start_end()"/>
- <circle cx="9" cy="9" r="5" stroke-width="1" fill="red" onclick="bouton_clear()"/>
- <script type="text/javascript">
- <![CDATA[
- var SVG_NS ="http://www.w3.org/2000/svg";
- const pi=3.141592754
- function getMilis(){
- var a=new Date();
- return (a.getHours()*24+a.getMinutes()) * 60+a.getSeconds();
- }
- var base=getMilis();
- var stop=base;
- var vargo=false;
- var timeout;
- function bouton_start_end(){
- if (vargo){
- vargo=false;
- stop=getMilis();
- clearTimeout(timeout);
- }else{
- base+=getMilis()-stop;
- vargo=true;
- ANIM();
- }
- }
- function bouton_clear(){
- if (!vargo){
- stop=base;
- }
- }
- function ANIM(){
- var d=getMilis()-base;
- s=d%60;
- m=d/60;
- document.getElementById("minutes").setAttribute("x2", Math.cos((m-15)/30*pi)*35+50);
- document.getElementById("minutes").setAttribute("y2", Math.sin((m-15)/30*pi)*35+50);
- document.getElementById("secondes").setAttribute("x2", Math.cos((s-15)/30*pi)*45+50);
- document.getElementById("secondes").setAttribute("y2", Math.sin((s-15)/30*pi)*45+50);
- if (vargo)
- timeout=setTimeout("ANIM()", 1000);
- }
- ANIM(); // appel de l\'animation
- var p=document.getElementById("marques");
- var b=document.getElementById("small");
- for (i=0;i<60;i++){
- a=document.createElementNS(SVG_NS, "circle");
- a.setAttribute("cx", Math.cos((i-15)/30*pi)*47+50);
- a.setAttribute("cy", Math.sin((i-15)/30*pi)*47+50);
- a.setAttribute("r", "2");
- if (i%15==0){
- a.setAttribute("fill", "black");
- }else if (i%5==0){
- a.setAttribute("fill", "gray");
- }else{
- a.setAttribute("fill", "white");
- }
- a.setAttribute("stroke-width", "0.3");
- p.appendChild(a);
- }
- ]]>
- </script>
- </svg>
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" >
<g stroke="black">
<line x1="50" x2="50" y1="50" y2="5" stroke-width=".5" id="secondes" />
<line x1="50" x2="50" y1="50" y2="15" stroke-width="1" id="minutes" />
</g>
<g stroke="black" id="marques">
<circle cx="50" cy="50" r="3" stroke-width="1" fill="white" id="small"/>
</g>
<circle cx="5" cy="5" r="5" stroke-width="1" fill="blue" onclick="bouton_start_end()"/>
<circle cx="9" cy="9" r="5" stroke-width="1" fill="red" onclick="bouton_clear()"/>
<script type="text/javascript">
<![CDATA[
var SVG_NS ="http://www.w3.org/2000/svg";
const pi=3.141592754
function getMilis(){
var a=new Date();
return (a.getHours()*24+a.getMinutes()) * 60+a.getSeconds();
}
var base=getMilis();
var stop=base;
var vargo=false;
var timeout;
function bouton_start_end(){
if (vargo){
vargo=false;
stop=getMilis();
clearTimeout(timeout);
}else{
base+=getMilis()-stop;
vargo=true;
ANIM();
}
}
function bouton_clear(){
if (!vargo){
stop=base;
}
}
function ANIM(){
var d=getMilis()-base;
s=d%60;
m=d/60;
document.getElementById("minutes").setAttribute("x2", Math.cos((m-15)/30*pi)*35+50);
document.getElementById("minutes").setAttribute("y2", Math.sin((m-15)/30*pi)*35+50);
document.getElementById("secondes").setAttribute("x2", Math.cos((s-15)/30*pi)*45+50);
document.getElementById("secondes").setAttribute("y2", Math.sin((s-15)/30*pi)*45+50);
if (vargo)
timeout=setTimeout("ANIM()", 1000);
}
ANIM(); // appel de l\'animation
var p=document.getElementById("marques");
var b=document.getElementById("small");
for (i=0;i<60;i++){
a=document.createElementNS(SVG_NS, "circle");
a.setAttribute("cx", Math.cos((i-15)/30*pi)*47+50);
a.setAttribute("cy", Math.sin((i-15)/30*pi)*47+50);
a.setAttribute("r", "2");
if (i%15==0){
a.setAttribute("fill", "black");
}else if (i%5==0){
a.setAttribute("fill", "gray");
}else{
a.setAttribute("fill", "white");
}
a.setAttribute("stroke-width", "0.3");
p.appendChild(a);
}
]]>
</script>
</svg>
Historique
- 30 janvier 2008 11:47:31 :
- orthographe
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Calcul de DATE avec JavaScript [ par Dzeus ]
Salut, G besoin d'ecrire une fonction qui renvoie le nombre de jour exact écoulé entre deux dates ; exemple..20/02/2001 et 5/03/2001...ATTENTION : Il
Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression [ par lise ]
Voici mon prb:je récupère 1 champs issue de ma base access à l'aide d'1 requête sql en asp, ce champs c 1 date je la stock dans une variable: "dat(j)"
Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression [ par lise ]
Voici mon prb:je récupère 1 champs issue de ma base access à l'aide d'1 requête sql en asp, ce champs c 1 date je la stock dans une variable: "dat(j)"
Afficher la date de dernière modification [ par PsyCaDi ]
Bonjour,Comment fait-on pour afficher la date de dernière modification sur une page HTML? (peu importe le langage)Merci
Saisie de date en asp [ par breakdancer971 ]
Bonjour,j'utilise dreamweaverMxj'ai créé un formulaire ou l'on doit saisir des dates et lorsque je les enregistre quelque soit le format soit access o
HORLOGE À AIGUILLES QUI TOURNENT AVEC LA DATE [ par profnaimbus ]
Bonjour,j'ai un problème avec le script HORLOGE À AIGUILLES QUI TOURNENT AVEC LA DATE, je n'arrive pas à le faire fonctionner pouvez vous m'aider???
calcul d'un nombre de jours entre deux dates [ par borisV ]
Bonjour, je cherche à calculer (et afficher...) un nombre de jours en tapant une date d'arrivée et une date de départ.En fait, il faudrait peut-être s
date [ par Cristalline ]
Comment comparer la date d'une base de données avec celle d'aujourd'hui en javascript?Et comment faire pour l'afficher que si elle est supérieur à cel
date [ par natnat ]
bonjor,je suis en stage et ds une panade complete, si qq'1 pouvait m'aider, ce serait super coolje passe à suivre la fonction que j'ai copié et adapté
Afficher Date Heure en cours sur page web [ par charlybegood46 ]
Bonjour,Je cherche à afficher la date et l'heure actuelle dans une page web!Merci pour votre aide. Tout est pour le mieux dans le meilleur des mondes
|
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
|