Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Движение DIV


Автор: Fiyanov 4.11.2008, 08:57
Код JS:
Код

<script language="JavaScript">
var d1 = document.getElementById("d1");
var sx = 0;
function Move()
{
sx = parseInt(d1.style.top);
sx = sx + 1;
d1.style.top=sx+"px";
document.title =" "+sx;
setInterval("Move();",1000);
}
</script>


Код HTML:
Код

<div id="d1"  style="width=100px; height=100px; background-color: #ffcc00; top=0;"></div>


хочу чтоб DIV плавно двигался вниз страницы но почему то переменная sx вместо увличения на один увеличиваеться в 2 раза... что не так?

Автор: bars80080 4.11.2008, 11:25
потому что у тебя вызов цикличного интервала производится в его же функции. интервалы накладываются друг на друга и объект приобретает большую скорость

либо замени setInterval на setTimeout, либо вынеси его из функции

Автор: Fiyanov 4.11.2008, 11:36
Спасибо!

Автор: IDVsbruck 4.11.2008, 13:13
А еще лучше поставь jQuery и делай все эти слайдинги в оду строчку - быстро, кроссбраузерно, просто.

Автор: Michael.de 4.11.2008, 18:43
Fiyanov: если это не 'очепятка', то правильно так:
Код

<div id="d1"  style="width:100px; height:100px; background-color: #ffcc00; top:0;"></div>


P.S. хотя я бы написал:
Код

<div id="d1"  style="width:100px;height:100px;background-color:#FC0;top:0"></div>
 smile

Автор: Fiyanov 22.12.2008, 13:39
Нет не очепятка. Просто делал в IE там всё понимаеться. Но потом уже столкнулся с ":"

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)