Kezdőoldal » Számítástechnika » Programozás » Valaki át írná nekem ezt hogy...

Valaki át írná nekem ezt hogy ne induljon újra ha frissítek az oldalra, az időt egy fixtől számoljon vissza, pl. : beírom 2014.11.11 20:30:00, és akkor ér nullára amikor adott nap 20:30:00 lesz?

Figyelt kérdés

/*

* jquery-counter plugin

*

* Copyright (c) 2009 Martin Conte Mac Donell <Reflejo@gmail.com>

* Dual licensed under the MIT and GPL licenses.

* [link]

*/

jQuery.fn.countdown = function(userOptions)

{

// Default options

var options = {

stepTime: 60,

// startTime and format MUST follow the same format.

// also you cannot specify a format unordered (e.g. hh:ss:mm is wrong)

format: "hh:mm:ss",

startTime: "12:32:55",

digitImages: 6,

digitWidth: 53,

digitHeight: 77,

timerEnd: function(){},

image: "digits.png"

};

var digits = [], interval;


// Draw digits in given container

var createDigits = function(where)

{

var c = 0;

// Iterate each startTime digit, if it is not a digit

// we'll asume that it's a separator

for (var i = 0; i < options.startTime.length; i++)

{

if (parseInt(options.startTime[i]) >= 0)

{

elem = $('<div id="cnt_' + i + '" class="cntDigit" />').css({

height: options.digitHeight * options.digitImages * 10,

float: 'left', background: 'url(\'' + options.image + '\')',

width: options.digitWidth});

digits.push(elem);

margin(c, -((parseInt(options.startTime[i]) * options.digitHeight *

options.digitImages)));

digits[c].__max = 9;

// Add max digits, for example, first digit of minutes (mm) has

// a max of 5. Conditional max is used when the left digit has reach

// the max. For example second "hours" digit has a conditional max of 4

switch (options.format[i]) {

case 'h':

digits[c].__max = (c % 2 == 0) ? 2: 9;

if (c % 2 == 0)

digits[c].__condmax = 4;

break;

case 'd':

digits[c].__max = 9;

break;

case 'm':

case 's':

digits[c].__max = (c % 2 == 0) ? 5: 9;

}

++c;

}

else

elem = $('<div class="cntSeparator"/>').css({float: 'left'})

.text(options.startTime[i]);


where.append(elem)

}

};


// Set or get element margin

var margin = function(elem, val)

{

if (val !== undefined)

return digits[elem].css({'marginTop': val + 'px'});


return parseInt(digits[elem].css('marginTop').replace('px', ''));

};


// Makes the movement. This is done by "digitImages" steps.

var moveStep = function(elem)

{

digits[elem]._digitInitial = -(digits[elem].__max * options.digitHeight * options.digitImages);

return function _move() {

mtop = margin(elem) + options.digitHeight;

if (mtop == options.digitHeight) {

margin(elem, digits[elem]._digitInitial);

if (elem > 0) moveStep(elem - 1)();

else

{

clearInterval(interval);

for (var i=0; i < digits.length; i++) margin(i, 0);

options.timerEnd();

return;

}

if ((elem > 0) && (digits[elem].__condmax !== undefined) &&

(digits[elem - 1]._digitInitial == margin(elem - 1)))

margin(elem, -(digits[elem].__condmax * options.digitHeight * options.digitImages));

return;

}


margin(elem, mtop);

if (margin(elem) / options.digitHeight % options.digitImages != 0)

setTimeout(_move, options.stepTime);


if (mtop == 0) digits[elem].__ismax = true;

}

};


$.extend(options, userOptions);

this.css({height: options.digitHeight, overflow: 'hidden'});

createDigits(this);

interval = setInterval(moveStep(digits.length - 1), 1000);

};



2014. nov. 11. 03:43
1 2
 1/14 CspCsj ***** válasza:

Itt egy rövidebb kód:


<script src="//code.jquery.com/jquery.js"></script>

<script src="//cdn.rawgit.com/hilios/jQuery.countdown/2.0.4/dist/jquery.countdown.min.js"></script>


<span id="clock"></span>


<script type="text/javascript">

$('#clock').countdown("2014/12/31 24:00", function(event) {var totalHours = event.offset.totalDays * 24 + event.offset.hours;$(this).html(event.strftime(totalHours + ' hr %M min %S sec'));});

</script>


A visszaszámolás a countdown utáni időpontig tart. CSS-ben meg formázhatod a számlálót.

2014. nov. 11. 08:36
Hasznos számodra ez a válasz?
 2/14 CspCsj ***** válasza:

Kivette a rendszer a http%3A-ot a JS forráscímekből, úgy meg nem fog működni.

A végén a "...hr ...min ...sec" törölhető/átírható.

2014. nov. 11. 09:31
Hasznos számodra ez a válasz?
 3/14 A kérdező kommentje:
Először is köszönöm a válaszod! Sajnos nem igen értek hozzá, CSS, meg mit hogy kellene, ezért is kértem hogy az adott kódot alakítani, hogy csak ki kelljen cserélnem a fájlban. Így megtudnád esetleg csinálni? Nagyon megköszönném!
2014. nov. 13. 00:19
 4/14 CspCsj ***** válasza:

Ez most így egy szimpla visszaszámláló, ami az elején megadott startTime: "12:32:55" -től számol vissza?

Ekkor a "//Default options" sor elé ezt szúrd be:

var cel_datum=new Date("2014/11/13 12:00:30");

var aktualis_datum=new Date;

var ezredmasodpercek=cel_datum.getTime()-aktualis_datum.getTime();

var masodpercek=Math.floor(ezredmasodpercek/1000)%60;

var percek=Math.floor(ezredmasodpercek/1000/60)%60;

var orak=Math.floor(ezredmasodpercek/1000/3600);


és a startTime: "12:32:55", sort erre cseréld le:

startTime: orak+":"+percek+":"+masodpercek,


valamint a format: "hh:mm:ss", sor is legyen inkább ilyen:

format: "hhhh:mm:ss",

Ugyanis ha több mint egy hónapot kell visszaszámolni, akkor az több, mint 1000 órát jelent, így két számjegylehet hogy hibát ad.

2014. nov. 13. 01:19
Hasznos számodra ez a válasz?
 5/14 CspCsj ***** válasza:

Kimaradt:

A cel_datum a visszaszámolás végdátumát jelenti, szóval azt neked kell majd pontosítani de szerintem úgyis kitaláltad volna.

2014. nov. 13. 01:22
Hasznos számodra ez a válasz?
 6/14 CspCsj ***** válasza:

Esetleg a format: "hh:mm:ss", sort az órák számának függvényében dinamikusan is meg lehet adni:

format: (orak<100?"hh":(orak<1000?"hhh":"hhhh"))+":mm:ss",

Így ha 100-nál kisebb akkor csak "hh:mm:ss", ha 1000-nél kisebb akkor "hhh:mm:ss" egyébként meg "hhhh:mm:ss".

2014. nov. 13. 01:39
Hasznos számodra ez a válasz?
 7/14 A kérdező kommentje:

Sajnos nem működik! :(

Ezt raktam a .js file-ba:

var cel_datum=new Date("2014/11/14 12:00:30");

var aktualis_datum=new Date;

var ezredmasodpercek=cel_datum.getTime()_aktualis_datum.getTime(

);

var masodpercek=Math.floor(ezredmasodpercek/1000)%60;

var percek=Math.floor(ezredmasodpercek/1000/60)%60;

var orak=Math.floor(ezredmasodpercek/1000/3600);

// Default options

var options = {

stepTime: 60,

// startTime and format MUST follow the same format.

// also you cannot specify a format unordered (e.g. hh:ss:mm is wrong)

format: "hh:mm:ss",

startTime: "orak+":"+percek+":"+masodpercek"

digitImages: 6,

digitWidth: 53,

digitHeight: 77,

timerEnd: function(){},

image: "digits.png"

};

ezt pedig az index.html-be:

<script type="text/javascript" src="javascripts/jquery.countdown.js"></script>

<script type="text/javascript">

$(function(){

$('#counter').countdown({

image: 'images/digits.png',

startTime: "orak+":"+percek+":"+masodpercek"

});

});

</script>


Nem jelenik meg! Rosszul csináltam valamit?

Az eddigi válaszaid nagyon szépen köszönöm!

2014. nov. 13. 22:36
 8/14 CspCsj ***** válasza:

var ezredmasodpercek=cel_datum.getTime()_aktualis_datum.getTime();

Ebben a sorban számolja ki a cél_dátum és az aktuális_dátum közötti időt a visszaszámoláshoz, de nem kivonásjel hanem aláhúzásjel van, biztos csak elgépelés.

2014. nov. 14. 10:01
Hasznos számodra ez a válasz?
 9/14 CspCsj ***** válasza:

Kimaradt:

Néha válaszadáskor a gyakorikerdesek.hu rendszere csinál plusz sortöréseket, például a jelzett sor végén a bezáró zárójel és pontosvessző is átkerült a következő sorba. Ez is okozhat hibát, ilyeneket nyugodtan javíts ki.

2014. nov. 14. 10:04
Hasznos számodra ez a válasz?
 10/14 CspCsj ***** válasza:

Még egy:

startTime: "orak+":"+percek+":"+masodpercek"

Ennek a sornak a végéról egy vessző hiányzik. Az options rekordban az egyes elemeket vessző választja el, a többi sornál látható.


Ha ennyire kevés a tapasztalatod a programozásban, akkor érdemesebb sokkal rövidebb/egyszerűbb kódokat használni, mint amilyet először írtam.

2014. nov. 14. 10:08
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!