Гляньте плс мой код
Всем привет, пишу функцию которая будет каждую секунду поднимать див на 50 пикселей в верх.
вот мой код
function upAndDown () {
var lift = document.getElementById('lift');
lift.style.marginBottom = "50px";
}
function lift () {
timer = window.setInterval("upAndDown()", 1000);
}
<a href="javascript:lift()">
button
</a>
при нажатии на ссылку диву единожды прибавляется margin-bottom: 50px; и все, хотя интервал сам продолжает идти, я просто только учусь js, что я написал не так? |
Цитата:
|
Имеется в виду что ему присваивается margin-bottom 50 px, но лишь один раз.
|
Цитата:
почему не 10 или 15 |
Paul_Wahtel,
:(
var x = 0;
function upAndDown () {
var lift = document.getElementById('lift');
lift.style.marginBottom = x +"px";
x += 50;
}
function lift () {
timer = window.setInterval("upAndDown()", 1000);
}
<a href="javascript:lift()">
button
</a>
|
спасибо, что то я и вправду втыканул.
|
Элемент лучше вынести за ф-цию, чтобы каждый раз не получать его через getElementById. timer тоже нужно объявить. В setInterval лучше передавать саму ф-цию, а не строко-код.
var lift;
(function() {
var elemStyle = document.getElementById('lift').style,
timer, x = 0;
lift = function() {
clearInterval(timer);
timer = setInterval(function() {
x += 50;
elemStyle.marginBottom = x + 'px';
}, 1000);
};
})();
:) |
| Часовой пояс GMT +3, время: 08:43. |