Не запускается таймер
<button onclick = "startTimer()">Старт</button>
<span id="mT">00:00:10</span> <script> function startTimer () { t = setInterval (function() { var s = document.getElementById ('mT'), f = function (x) { return (x / 100).toFixed (2).substr (2) }, d = ':', y = s.innerHTML.split (d), z = --y [2] + y [0] * 3.6e3 + y [1] * 60; if (!z) clearInterval (t); s.innerHTML = [ f (Math.floor (z / 3600)), f (Math.floor (z % 3600 / 60)), f (z % 3600 % 60) ].join (d); }, 1000); <script> |
Ты будешь по каждому поводу создавать тему?
<button onclick = "startStopTimer()">Старт/Стоп</button> var a = 3670; // Время в секундах. var t = 1; var check = 0; var ch; var mn; var sc; function startStopTimer(){ if (check == 0){ t = 1; check = 1; timer(); } if (check == 1){ t = 0; check = 0; } } function timer(){ if (a==0){t=0;} if(t==1){ a=a-1; ch = Math.floor(a/60/60); //часы mn = Math.floor(a/60-ch*60); //минуты sc = a%60; //секунды document.getElementById ('mT').innerHTML = (ch+":"+mn+":"+sc); setTimeout('timer()',1000); } } Вот тебе мой, куда более простой и понятный таймер. Кстати написанный тебе в буквально 2 часа назад созданной теме. Здесь не двач, тут скорость постинга немного меньше. Тут не б, если обратишь внимание, то все три твоих темы про таймер до сих пор висят на нулевой. Не торопись ты так. Спокойнее. Терпение, и тебе обязательно помогут. =-) |
Я нашёл таймер. Но когда запускаешь второй раз он некорректно работает.
<button onclick = "startTimer()">Старт</button> <span id="mT">00:00:10</span> <script> function startTimer () { t = setInterval (function() { var s = document.getElementById ('mT'), f = function (x) { return (x / 100).toFixed (2).substr (2); }, d = ':', y = s.innerHTML.split (d), z = --y [2] + y [0] * 3.6e3 + y [1] * 60; if (!z) clearInterval (t); s.innerHTML = [ f (Math.floor (z / 3600)), f (Math.floor (z % 3600 / 60)), f (z % 3600 % 60) ].join (d); }, 1000); } </script> |
Цитата:
|
Цитата:
|
Цитата:
|
VERDANT,
что-то дофига тем ты создал. Пиши какие две темы удалить ибо тут тебе не мусорка. |
Цитата:
|
kostyanet, конечно, видела. Речь идёт не о стилях. Мне интересно, как должен выглядеть js-код таймера, чтоб он был похож на таймер, в вашем понимании.
|
Речь идет не о стилях. Мне интересно, вы понимаете что такое метафора таймера в программировании? Стили показали что нет, не понимаете. Так вот в программировании программа таймера должна быть такой же годной к употреблению вещью как настоящий таймер с кнопочками. Например рабочий стол Винды достаточно понятная метафора рабочего стола из дерева? Или метафора фотолаборатории - Фотошоп. Или метафора киностудии - Сони Вегас. Или метафора офиса - МС Офис и так далее...
Для начала у таймера должен быть корпус внутри которого спрятан тонкий механизм. В программировании корпусом может быть функция или объект. Вы видите корпус в тех кодах? Я не вижу. Я вижу кучу запчастей из которых на пружинке болтается кнопка старт. |
|
kostyanet,
В своеё оправдание скажу лишь что писал максимально просто, что бы человек с нулевыми знаниями мог разобраться. А потом костыли лепил, так как основа таймера уже была написана. Конечно если посидеть над этим кодом денёк другой. Всё прилизать. Убрать пару костылей, конечно же. Тогда всё это примет довольно законченный вид. С другой стороны глупо давать начинающему часовщику собранный хублот с учтенными високосными годами в календаре, а потом удивляться почему он не может собрать простого секундомера. И не стоит строить из себя знатока с умным видом. Возможно ты и хороший программист, но не стоит кидаться терминами значение которых ты не знаешь или не понимаешь. Метафора, это несколько не то что ты сказал. Я бы сказал что описанное тобой это аналогия. Твоё высказывание очередной раз преподносит тебя с не очень хорошей стороны. Заметны твои попытки казаться умней, чем есть на самом деле. Или же считаешь себя умней чем есть на самом деле. И если в некоторых моментах связанных с js это так, в виду простоты вопросов и малой компетентности обсуждающих, то в остальном ты немного недотягиваешь до уровня к которому себя причисляешь. В одном минусе к какому-то твоему посту было очень чётко написано: "Если знаешь и не влом - помоги. Если не знаешь - промолчи. Форумы для того и существуют, чтобы менее умные спрашивали, а более умные помогали. А обсирать задающего - гнилой показатель отвечающего" Вспоминай по чаще эти слова. И не старайся возвыситься над каждым, на чей пост ты отвечаешь. А пиши конкретно что и где не так, без пафоса и претензией на свою гениальность. |
Цитата:
Объясняю еще раз: когда вы нагибаетесь до его уровня - на его уровне ничего нового не возникает, а на вашем уровне закрепляется поза "раком". когда вы остаетесь на своем уровне - он будет вынужден тянуться к этому уровню и дотянется если надо, ибо на то форумы и существуют. В итоге он поднял уровень и ваш уровень непоколебим остался. Так понятно или еще раз объяснять реакционность и порочность потакания дуракам? |
Пожалуйста. Вы можете подумать это хорошо - нагибаться до него. А на самом деле - плохо. Тем самым вы говорите в сторону: он же дебил, никогда не поймет ничего если я на своем уровне ему объяснять начну. То есть начав объяснять человеку как дураку - вы его и называете дураком в сущности. Но главное что начав так объяснять и показывать - вы ничего умного ему не передадите. Так и оставите дурнем, в вашей терминологии - новичком.
|
kostyanet,
надо будет твой комент себе на стенку повесить :D и это не шутка, потому что смысл в этом есть :dance: |
Конечно может быть и такой вариант что вы сами ничерта не понимаете и поэтому вам деваться некуда - только дурачкам и объяснять на пальцах.
ЗЫ это было Леону Блин, да это же самоочевидно - что между спецами и вообще между взрослыми людями всегда царит пиринг. Если я начну кому-то как дятлу объяснять или за него писать - значит я так и думаю про него - дятел. А если как обычно начну - значит думаю: он же не идиот - поймет, а что не поймет - задаст вопрос и получит ответ. Все просто. |
таймер с callback в минималистическом стиле
:)
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .test{ background-color: rgb(51, 153, 0); color: rgb(102, 255, 255); } </style> </head> <body> <span id="time"></span> <script> function timer(a) { var e = performance.now(); requestAnimationFrame(function f(b) { b -= e ; b > a.duration && (b = a.duration); var c = b / 1000, d = c % 60 | 0, c = c / 60 | 0; a.elem.innerHTML = (9 < c ? "" : "0") + c + ":" + ((9 < d ? "" : "0") + d); b == a.duration && a.callback && a.callback(); b < a.duration && requestAnimationFrame(f) }) }; var span = document.querySelector('#time'); timer({ duration: 5 *1000, elem : span, callback : function() { span.classList.add('test')} }) </script> </body> </html> |
Часовой пояс GMT +3, время: 16:53. |