Trucsweb.com

Forum de discussion

 Forum « Programmation Javascript » (archives)

Re: Compte a rebours en boucle

Envoyé: 26 mai 2006, 8h28 par foufoutom


Salut,

Merci pour ta reponse, je n'avais pas pensé à inclure le code du compte a rebours.

Celui actuellement present est le suivant :

<code>
// 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}
<code>

Le site ou j'ai récupéré ce compte a rebours me proposait aussi le même compte a rebours, paramétrable, qui est le suivant :

<code>
/*
Script: DHTML Easy Countdown (Development Version)
Description: Counts down or up from a date (this is the non-XHTML version)
Author: Andrew Urquhart
Home: http://andrewu.co.uk/clj/countdown/
History:
20040117 0035UTC v1 Andrew Urquhart Created
20040119 1943UTC v1.1 Andrew Urquhart Made more accessible/easier to use
20040317 1548UTC v1.2 Andrew Urquhart Implemented a less intrusive error message
20040331 1408BST v1.3 Andrew Urquhart Attempts to add to the currently window.onload schedule, rather than overriding it
20050210 1558GMT v1.4 Andrew Urquhart Saves a short-cut to the each countdown Id element and re-uses that rather than continually calling getElementById - faster. Also reduced all nouns to short-versions to decrease size of script
20050216 0018GMT v1.41 Andrew Urquhart Added support for IE4
20051231 0210GMT v1.5 Andrew Urquhart Switched to custom date format and custom date parser for better internationalisation and cross-browser compatibility (should fix reports of recent bugs in Mac browsers)
20060101 1649GMT v1.52 Andrew Urquhart Made counter update 0.1s after the last whole second to ensure that we don't display the same second twice
*/

// Tick (countdownId, eventDate)
function CD_T(id, e) {
var n = new Date();
CD_D(+n, id, e);
setTimeout("CD_T('" + id + "', " + e + ")", 1100-n.getMilliseconds()); // We offset from 1100 so that our clock ticks every second (the millisecond correction each loop sees to that), but updates 0.1s after every whole second so that we don't accidentally read the same Date() twice in the same second
};

// Calculate time and update display (dateNow, countdownId, eventDate)
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);

// If you want to manually customise the counter display, then edit this line:
CD_OBJS[id].innerHTML = d + " day" + (d == 1 ? " " : "s ") + CD_ZP(h) + "h " + CD_ZP(m) + "m " + CD_ZP(s) + "s";
};

// Prefix single integers with a zero
function CD_ZP(i) {
return (i<10 ? "0" + i : i);
};

// Initialisation
function CD_Init() {
var pref = "countdown";
var objH = 1; // temp boolean true value
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; // Store global reference to countdown element object
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>";
}
}
}
}
};

// Get Date() object from 2006-01-01 00:00:00 GMT+00:00 date format
function CD_Parse(strDate) {
// Pattern match to a countdown date
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)) {
// Start with a default date and build it up into the countdown date through Date setter methods
var d = new Date(0);

d.setUTCFullYear(+RegExp.$1,+RegExp.$2-1,+RegExp.$3); // Set YYYY-MM-DD directly as UTC
d.setUTCHours(+RegExp.$4,+RegExp.$5,+RegExp.$6); // Set HH:MM:SS directly as UTC

// If there is a timezone offset specified then we need to compensate for the offset from UTC
var tzs = (RegExp.$7 == "-" ? -1 : 1); // Timezone sign
var tzh = +RegExp.$8; // Get requested timezone offset HH (offset ahead of UTC - may be negative)
var tzm = +RegExp.$9; // Get requested timezone offset MM (offset ahead of UTC - always positive)
if (tzh) {
d.setUTCHours(d.getUTCHours() - tzh*tzs); // Compensate for timezone HH offset from UTC
}
if (tzm) {
d.setUTCMinutes(d.getUTCMinutes() - tzm*tzs); // Compensate for timezone MM offset, depending on whether the requested MM offset is ahead or behind of UTC
}
return d; // Date now correctly parsed into a Date object correctly offset from UTC internally regardless of users current timezone.
}
else {
return NaN; // Didn't match required date format
};
};

var CD_OBJS = new Object();

// Try not to commandeer the default onload handler if possible
if (window.attachEvent) {
window.attachEvent('onload', CD_Init);
}
else if (window.addEventListener) {
window.addEventListener("load", CD_Init, false);
}
else {
window.onload = CD_Init;
}
<code>

Merci pour votre aide.


Réponses

 sp spRe: Compte a rebours en boucle foufoutom28/5/2006
 sp spRe: Compte a rebours en boucle Oznog30/5/2006
 sp spRe: Compte a rebours en boucle foufoutom4/9/2006
 sp spRe: Compte a rebours en boucle foufoutom4/9/2006
Aucun médias sociaux
X

Trucsweb.com Connexion

X

Trucsweb.com Mot de passe perdu

X

Trucsweb.com Conditions générales

Conditions

Responsabilité

La responsabilité des Trucsweb.com ne pourra être engagée en cas de faits indépendants de sa volonté. Les informations mises à disposition sur ce site le sont uniquement à titre purement informatif et ne sauraient constituer en aucun cas un conseil ou une recommandation de quelque nature que ce soit.

Aucun contrôle n'est exercé sur les références et ressources externes, l'utilisateur reconnaît que les Trucsweb.com n'assume aucune responsabilité relative à la mise à disposition de ces ressources, et ne peut être tenue responsable quant à leur contenu.

Droit applicable et juridiction compétente

Les règles en matière de droit, applicables aux contenus et aux transmissions de données sur et autour du site, sont déterminées par la loi canadienne. En cas de litige, n'ayant pu faire l'objet d'un accord à l'amiable, seuls les tribunaux canadien sont compétents.

X

Trucsweb.com Trucsweb

X

Trucsweb.com Glossaire

X

Trucsweb.com Trucsweb

X

Trucsweb.com Trucsweb

Conditions

Aucun message!

Merci.

X
Aucun message!
X

Trucsweb.com Créer un compte