Гляньте плс мой код
Всем привет, пишу функцию которая будет каждую секунду поднимать див на 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, время: 14:44. |