Avatar billede no_doubt Nybegynder
08. februar 2009 - 15:58 Der er 4 kommentarer og
1 løsning

nedtælling og handling

Hvordan kan man lave et javascript nedtællingsur som kalder en side når den når 00.00.00

værdien der skal tælles ned til er dd-mm-yyyy hh:mm:ss
Avatar billede Buckie Nybegynder
08. februar 2009 - 16:04 #1
Hvad med Settimeout og windows.location ?

<html>
<head>
<script type="text/javascript">
<!--
function countdown(){
    window.location = "www.sidederskalstillesvideretil.dk"
}
//-->
</script>
</head>
<body onLoad="setTimeout('countdown()', 5000)">
<h2>Redirecter om 5 sec</h2>
</body>
</html>
Avatar billede no_doubt Nybegynder
08. februar 2009 - 16:08 #2
Det skal være et stykke som viser dage, timer og minutter og sek. og når den (live) har talt ned til 00:00:01 skal den 1 sekunt efter kalde en side. Den skal køre live på alle sider og dato/tid hentes fra en database
Avatar billede no_doubt Nybegynder
08. februar 2009 - 16:22 #3
Har nedenstående funktion hvor der så skal ligges en handling på når tiden er udløbet.

<div id="test"></div>

<script type="text/javascript">
    /**
    * @class Countdown
    * @param {string/HTMLElement} el target HTMLElement or id of target HTMLElement.
    * @param {string/Date Object} time target time to countdown to.
    */
    var CountDown = function(el, time) {
        if(!el.innerHTML) {
            el = document.getElementById(el);
        }   
        this.el = el;
       
        if(typeof time != "object" || !time.getTime) {
            time = new Date(time);
        }
        this.target = time;
    }
   
    CountDown.prototype = {
        /**
        * Gets distance in seconds
        * @return {number}
        */
        getDist : function() {
            var now = new Date();
           
            var dist = now.getTime() - this.target.getTime();
            return Math.abs(dist);
        },

        /**
        * Gets calculated distance
        * @return {object}
        */
        getCount : function() {
            var dist = this.getDist();

            var sekund = 1000
            var minut = 60 * sekund;
            var time = 60 * minut;
            var dag = 24 * time;
           
            var dage = Math.floor(dist / dag);
            var timer = Math.floor((dist - (dage*dag)) / time);
            var minutter = Math.floor((dist - (dage*dag+timer*time)) / minut);
            var sekunder = Math.floor((dist - (dage*dag+timer*time+minutter*minut)) / sekund);

            return {
                "dage" : dage, "timer" : timer, "minutter" : minutter, "sekunder" : sekunder
            }
        },
       
        /**
        * starts countdown
        */
        start : function() {
            var c = this.getCount()
       
            this.el.innerHTML = c.dage + ' dage '+c.timer+' t. '+c.minutter+' min. '+c.sekunder+' sek.';
           
            var fn = this._delegate(this.start,this);
            this.timer = setTimeout(fn,1000);
        },

        /**
        * stops countdown
        */
        stop : function() {
            clearTimeout(this.timer);
        },
       
        // private
        _delegate : function(func,obj) {
            return function() {
                return func.apply(obj,[]);
            }
        }
    }

    window.onload = function() {
        var cd = new CountDown("test", new Date("01-02-2010 16:00:00"));
        cd.start();
       
    }
</script>
Avatar billede no_doubt Nybegynder
08. februar 2009 - 16:26 #4
Scriptet skulle desuden også gerne virke i FF
Avatar billede no_doubt Nybegynder
09. december 2009 - 15:47 #5
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester