То, что я пытаюсь достичь:Изменение свойства CSS (левое положение) динамически на setInterval
У меня есть кнопка. Когда эта кнопка нажата - она запускает функцию, которая устанавливает setInterval для запуска другой функции один раз в секунду. Эта функция должна перемещать делитель на 100 пикселей влево.
Что на самом деле происходит:
Делитель перемещает 100 пикселей влево, но затем останавливается и не двигается на любом последующем обжиге на setInterval функции.
Изображение, которое запускает первоначальную функцию:
<img id="playerimg" src="../../Downloads/1375889362_toggle-right_red.png" alt=""
width="42" height="42" border="0" onclick="vidgalshow()"/>
Заявление внутри этой функции, которая инициализирует и выстреливает Интервал:
closemaindiv = setInterval("collapser()", 1000);
И, наконец, сама разрушитель функция, которая должна выполнять анимацию:
document.getElementById("maindiv").style.position = "absolute";
document.getElementById("maindiv").style.left = (document.getElementById("maindiv").style.left - 100);
Я знаю, что Интервал - это firin g каждую секунду, потому что каждый раз я запускаю alert(). (Но поле перемещается один раз влево, а затем снова (!)).
Любые идеи о том, что здесь происходит?
'влево 'принимает длину *, а не целое число. – Quentin
Не то, чтобы он ничего исправить, но я бы предложил использовать 'setInterval (collapser, 1000)'. Если вы передаете строку сценария, она выполняется в глобальной области (и рассматривается как вызов 'eval', поэтому он имеет эти последствия) ... поэтому, если' collapser' был локальной функцией, он не будет найден и будет выдавать исключение. Просто общее соглашение, чтобы следовать – Ian
Спасибо за этих указателей. Очень полезно. – Jordan