Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите разобрать скрипт! (https://javascript.ru/forum/misc/1203-pomogite-razobrat-skript.html)

Forgott 05.05.2008 15:04

Помогите разобрать скрипт!
 
Сделал вот такой секундомер из десяти картинок с изображением цифр.

(сам скрипт)

<script language="javascript">
function c()
{
d = new Date()
s = d.getSeconds()
if (s >= 0)
{(document.pic1.src = s + ".gif")}
if (s >= 0)
{(document.pic0.src = "0.gif")}
if (s >= 10)
{(document.pic1.src = s - 10 + ".gif")}
if (s >= 10)
{(document.pic0.src = "1.gif")}
if (s >= 20)
{(document.pic1.src = s - 20 + ".gif")}
if (s >= 20)
{(document.pic0.src = "2.gif")}
if (s >= 30)
{(document.pic1.src = s - 30 + ".gif")}
if (s >= 30)
{(document.pic0.src = "3.gif")}
if (s >= 40)
{(document.pic1.src = s - 40 + ".gif")}
if (s >= 40)
{(document.pic0.src = "4.gif")}
if (s >= 50)
{(document.pic1.src = s - 50 + ".gif")}
if (s >= 50)
{(document.pic0.src = "5.gif")}
setTimeout('c()', 500)
}
</script>


Все работает, вот только бесит, что if для каждого цикла приходится по два раза вбивать. А хотелось бы, чтобы было так:

if (s >= 0)
{(document.pic1.src = s + ".gif")}
{(document.pic0.src = "0.gif")}


Но так третью строку начинает глючить и не фига не работает.
Догадываюсь, что ошибся где-то в выражениях... Вроде {} закрывают команду, а следовательно третья строка уже к if не имеет отношения.
В общем, помогите советом, кто знает!

Gvozd 05.05.2008 15:17

if (s >= 0)
{
document.pic1.src = s + ".gif";
document.pic0.src = "0.gif";
}

просьба к автору, на форуме есть специальная кнопочка для добавления листингов.
Так же посоветовал бы воспользоватся, каким-либо современным и толковым справочником, так как судя по стилю написания вами скрипта, вы занимаетесь недавно.
Попробуйте книжки, описанные в разделе "книги", а также почитайте подборку статей автора данного ресурса, благо там написанно довольно понятно.
Желаю вам удачи на нелегком и тернистом пути WEB-програмирования;)

Forgott 05.05.2008 15:19

Спасибо за помощь и за совет! Да, занимаюсь недавно.

Gvozd 05.05.2008 15:24

Да пожалуйста.:D

Snipe 06.05.2008 08:11

А попробую посоветовать сделать через switch - case.

Gvozd 06.05.2008 20:47

Цитата:

Сообщение от Snipe
А попробую посоветовать сделать через switch - case.

Да, конечно вариант.Но тогда нада по целой части от деления на 10.
ЗЫ: Я не в курсе как делается целоцисленное деление в JS. что-то не нашел ничего кроме старого-доброго %. может подскажите какие-нибудь прямые функции. А так в голове крутится парочка обходных вариантов

Snipe 06.05.2008 20:54

Math.round() - округляет 21,7 = 22; 21,3 = 21
Math.floor() - по меньшему целому 21,7 = 21; 21,2 = 21;
Math.ceil() - по большему целому 21,7 = 22; 21,2 = 22;

Gvozd 06.05.2008 21:16

БОьшое спасибо. это как раз и есть один из путей, о котором я подумал((
ДУмал, есть что-то по типу mod(x,y), но в принципе и это сойдет

akter89 21.02.2009 21:24

<html>
<head>
<title>simvol</title>
<Script language="JavaScript">
function ny()
{
 var s=r1.t1.value
 if(s=="a") 
 document.write("верно")
 else
 alert("введите букву a");
}
</Script>
</head>
<body bgColor="Salmon">
<center>
<form name="r1">
<input type="text" name="t1">
<input type="button" name="button1" value="ok" onClick="ny()">
</form>
</center>
</body>
</html>


и что значит какая строчка заранее спасибо))))

Gvozd 21.02.2009 22:10

<html>
<head>
<title>simvol</title>
<Script language="JavaScript">
function ny()
{
var s=r1.t1.value//получаем значение первого инпута в переменную
if(s=="a") //если эта переменная является буквой "а"
document.write("верно")//то выводим надпись "верно"
else//иначе
alert("введите букву a");//иначе выводим наджпись"введите букву a"
}
</Script>
</head>
<body bgColor="Salmon">
<center>
<form name="r1">
<input type="text" name="t1">
<input type="button" name="button1" value="ok" onClick="ny()">
</form>
</center>
</body>
</html>

все это срабатывает по щелчку на кнопку (onClick="ny()" обеспечивает это)


Часовой пояс GMT +3, время: 18:56.