IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Compte à rebours en boucle


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Par défaut Compte à rebours en boucle
    Bonjour à tous,

    J'ai intégré un compteur en javascript grace à un fichier .js inséré à la base de l'arborescence de mon site.

    Mon problème est que quand le compteur atteint la valeur 0, il repart dans le positif.

    Celui-ci est basé sur une date insérée dans le code de la page grâce à ces quelques lignes de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <span style="color: rgb(255, 0, 0);">Counting down to the end of
    the special offer : </span><span
    style="color: rgb(255, 0, 0);" id="countdown1">2006-7-15
    22:00:00 GMT+02:00 </span></big><span
    style="color: rgb(255, 0, 0);"><big
    style="font-weight: bold;">!</big><br>
    <br>
    Quelqu'un saurait-il modifier ces lignes de code de façon à ce que la date (en l'occurrence 15/07/2006 ici) se convertisse automatiquement en J+1, à savoir la date actuelle + un jour.

    Ainsi, le compteur repartirait automatiquement à 24h chaque fois qu'il atteint 0 (ou plutôt chaque fois qu'on passerait l'heure prédéfinie à côté de la date), et cela m'éviterait de devoir modifier chaque jour la date (15/07/2006) sur chacune des pages de mon site.

    Merci beaucoup pour votre aide. Je suis aussi preneur si quelqu'un a un autre script (dynamique) qui revient automatiquement à la valeur définie une fois arrivé à 0 (en l'occurrence 24h dans mon cas).

    Un grand merci à ceux qui tenteront de m'aider.

    Thomas

  2. #2
    Membre émérite Avatar de Sheriff
    Inscrit en
    Octobre 2004
    Messages
    608
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 608
    Par défaut
    Salut !
    peut-on voir le code JS que tu utilises ?
    je me dit qu'en utilisant l'objet Date ce ne serait qu'une formalité (voir la FAQ).
    @+

  3. #3
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Par défaut
    Merci Shériff pour ta réponse.

    Si je n'avais pas donné mon script, c'est parce-que j'espérais pouvoir agir simplement sur le code html afin que la date change d'elle meme toutes les 24h sans avoir à modifier le script en lui-même.

    J'ai trouvé des infos sur "l'objet date" que tu m'as conseillé, mais malheureusement étant un grand débutant en javascript, je ne crois pas être capable d'utiliser ces données.

    Je te joins donc mon compte à rebours, en espérant que toi ou quelqu'un d'autre pourra faire mon bonheur !

    Merci encore !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Andrew Urquhart : CountDown Timer : http://andrewu.co.uk/clj/countdown/
    function CD_T(id,e){var n=new Date();CD_D(+n,id,e);setTimeout("CD_T('"+id+"',"+e+")",1100-n.getMilliseconds())};function CD_D(n,id,e){var ms=e-n;if(ms<=0) ms*=-1;var d=Math.floor(ms/864E5);ms-=d*864E5;var h=Math.floor(ms/36E5);ms-=h*36E5;var m=Math.floor(ms/6E4);ms-=m*6E4;var s=Math.floor(ms/1E3);CD_OBJS[id].innerHTML=d+" day"+(d==1?" ":"s ")+CD_ZP(h)+"h "+CD_ZP(m)+"m "+CD_ZP(s)+"s"};function CD_ZP(i){return(i<10?"0"+i:i)};function CD_Init(){var pref="countdown";var objH=1;if(document.getElementById||document.all){for(var i=1;objH;++i){var id=pref+i;objH=document.getElementById?document.getElementById(id):document.all[id];if(objH&&(typeof objH.innerHTML)!='undefined'){var s=objH.innerHTML;var dt=CD_Parse(s);if(!isNaN(dt)){CD_OBJS[id]=objH;CD_T(id,dt.valueOf());if(objH.style){objH.style.visibility="visible"}}else {objH.innerHTML=s+"<a href=\"http://andrewu.co.uk/clj/countdown/\" title=\"Countdown Error:Invalid date format used,check documentation (see link)\">*</a>"}}}}};function CD_Parse(strDate){var objReDte=/(\d{4})\-(\d{1,2})\-(\d{1,2})\s+(\d{1,2}):(\d{1,2}):(\d{0,2})\s+GMT([+\-])(\d{1,2}):?(\d{1,2})?/;if(strDate.match(objReDte)){var d=new Date(0);d.setUTCFullYear(+RegExp.$1,+RegExp.$2-1,+RegExp.$3);d.setUTCHours(+RegExp.$4,+RegExp.$5,+RegExp.$6);var tzs=(RegExp.$7=="-"?-1:1);var tzh=+RegExp.$8;var tzm=+RegExp.$9;if(tzh){d.setUTCHours(d.getUTCHours()-tzh*tzs)}if(tzm){d.setUTCMinutes(d.getUTCMinutes()-tzm*tzs)};return d}else {return NaN}};var CD_OBJS=new Object();if(window.attachEvent){window.attachEvent('onload',CD_Init)}else if(window.addEventListener){window.addEventListener("load",CD_Init,false)}else {window.onload=CD_Init}

  4. #4
    Membre émérite Avatar de Sheriff
    Inscrit en
    Octobre 2004
    Messages
    608
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 608
    Par défaut
    Salut !
    yeute un peu ce code : il pourrait t'aider ;
    je crois qu'il est plus facile à manipuler...
    @+
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <html>
    <head>
    <title>exemple4
    </title>
    <script language="Javascript">
    var sem=new Array(7);
    var a=0,b=0;
    sem[1]="Lundi";
    sem[2]="Mardi";
    sem[3]="Mercredi";
    sem[4]="Jeudi";
    sem[5]="Vendredi";
    sem[6]="Samedi";
    sem[0]="Dimanche";
    var _12mois=new Array(12);
    _12mois[0]="Janvier";
    _12mois[1]="Février";
    _12mois[2]="Mars";
    _12mois[3]="Avril";
    _12mois[4]="Mai";
    _12mois[5]="Juin";
    _12mois[6]="Juillet";
    _12mois[7]="Août";
    _12mois[8]="Septembre";
    _12mois[9]="Octobre";
    _12mois[10]="Novembre";
    _12mois[11]="Décembre";
    var date=new Date(); //déclaration d'une variable de type date qui contient la date courante
    var mois=date.getMonth(); //la variable mois contient le N° du mois de 0 à 11
    var jour=date.getDate();
    var annee=date.getFullYear();
    var jour_sem=date.getDay();
    document.write((sem[jour_sem]+", le "+jour+" "+_12mois[mois]+" "+annee+"<br>").bold().fontcolor("blue").fontsize("3").italics().link("#"));
     
    function aff()	{
    var horl = new Date();
    var heure=horl.getHours(); min=horl.getMinutes(); sec=horl.getSeconds();
    document.form1.texte.value=heure+":"+(min<10?"0":"")+min+":"+(sec<10?"0":"")+sec;
    document.getElementById("he").innerHTML=heure+":"+(min<10?"0":"")+min+":"+(sec<10?"0":"")+sec;
    //val();
    document.getElementById("he").style.left = document.body.scrollLeft + a;
    document.getElementById("he").style.top = document.body.scrollTop + b;
    setTimeout('aff()',10);
    }
    </script>
    </head>
    <body onload="aff()" bgcolor="#c0c0c0">
    <form name="form1">
    <input name="texte" type="text" value="Afficher l'heure" onclick="if (document.form1.texte.value='Afficher l\'heure') aff()" style="font-family:tahoma,verdana; color:red; font-size:8pt; cursor:hand" readonly>
    </form>
    <div id="he" style="font-family:tahoma,verdana; color:white; font-size:8pt; cursor:arrows; position:absolute; font-weight:bold"></div><br>
    <br>
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>fin
    </body>
     
    </html>

  5. #5
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Par défaut
    Merci beaucoup, je viens de tester ton script, mais il s'agit d'un script qui donne l'heure en dynamique. Ce n'est pas un compte à rebours.

    Thomas

  6. #6
    Membre émérite Avatar de Sheriff
    Inscrit en
    Octobre 2004
    Messages
    608
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 608
    Par défaut
    salut !
    justement, pour le transformer en compte à rebours suffit de remplacer la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("he").innerHTML=heure+":"+(min<10?"0":"")+min+":"+(sec<10?"0":"")+sec;
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("he").innerHTML="- "+(24-heure)+":"+(min>50?"0":"")+(60-min)+":"+(sec>=50?"0":"")+(59-sec);
    puisque ce n'est que l'heure qui t'intéresse je pense que ça devrait aller...
    En2k, peut-être n'ai-je pas très bien saisi le problème : peux-tu reformuler stp ?
    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Un petit compte à rebours ! ! ! Une boucle qui plante !
    Par toutoune95800 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/04/2012, 17h56
  2. Compte a rebours en boucle
    Par foufoutom dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/11/2007, 13h29
  3. compte à rebours
    Par Datord dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 17/11/2005, 21h22
  4. compte à rebours
    Par etoile1506 dans le forum C
    Réponses: 10
    Dernier message: 27/10/2005, 15h20
  5. Compte à rebours trop rapide
    Par Anduriel dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/06/2005, 20h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo