редактирование этой страницы для тех, кто хочет читать это в будущем: PJavaScript: перемещение изображения
кажется, я прошу слишком много здесь .. но спасибо тем, кто помогает мне с этим проблема! на самом деле я хочу, чтобы принять все ваш ответ, но мне кажется, я только может принять один ..>>
Вопрос 1:.
я хочу, чтобы переместить изображение, но когда я пытаюсь получить положение изображения (с использованием document.getElementById().style.left
), это показывает мне значение NaN, когда я конвертирую его в целое. Интересно, как это исправить:/
вот мой код:
<script type="text/javascript">
function playit()
{
alert(parseInt(document.getElementById('ball').style.left)); <!-- shows a NaN value -->
}
</script>
я поместить изображение в таблицу и вызвать его с помощью функции OnClick; <td id="frame" colspan="5" onclick="playit()">
быть точным и я объявил образ как это: <img src="play/ball.png" id="ball" name="ball"/>
вот мой CSS для изображения:
#ball
{
position:absolute;
top:500px;
left:500px;
}
РАСТВОР (задается VIPIN JAIN): использование .offsetLeft
вместо element.style.left
Вопрос 2:
EDIT: Я установил его с помощью .offsetLeft
, и он отлично работает. теперь, когда я пытаюсь переместить изображение, я получил еще одну ошибку. Говорят, что я использую слишком много рекурсии. Я знаю, что это происходит, потому что я использую рекурсию, но мне интересно, что случилось с использованием рекурсии?
вот мой код:
<script type="text/javascript">
<script type="text/javascript">
var lball = document.getElementById('ball').offsetLeft;
var speed = 500;
function moveleft()
{
if(document.getElementById('ball').offsetLeft >0)
{
document.getElementById('ball').offsetLeft-=1;
setTimeout(moveleft(), speed);
}
else gameover();
}
function playit()
{
score = 0;
setTimeout(moveleft(), speed);
}
</script>
может кто-то помочь мне с этим? спасибо :)
РАСТВОР (задается Teemu):пожалуйста, обратитесь к Teemu's comment ниже на 'Edit II' часть.
Вопрос 3 (на самом деле я спрашиваю его о комментариях: P)
, когда я попытался установить положение изображения с помощью document.getElementById('ball').offsetLeft-=1;
, он показывает неопределенное значение.
РАСТВОР (задается Kemal Fadillah): «Это потому, что вы не можете установить значение элемента Вы должны установить новое значение позиции для .style.left
offsetLeft
..Что-то вроде этого: element.style.left = new_value + "px";
"
Вопрос 4 (опять же, я спрашиваю его о комментариях: P)
, кажется, что изображение не будет двигаться плавно (он выглядит ..? это вдруг «перекосы» в другое место) я поднял значение speed
, но она по-прежнему не работает, я упускаю что-то с ним я интересно ..:/
решения (дается Kemal Fadillah): " Установите speed
на 10 или 20. Th при этом анимация должна быть достаточно гладкой. Для того, чтобы сделать шаги изображения быстрее, вместо уменьшения левого сдвига на 1, попробуйте уменьшить его на 3.»
Если свойство CSS 'left' не установлено,' document.getElementById ('ball'). Style.left' вернет пустую строку. И если вы передадите пустую строку в 'parseInt()', она даст вам «NaN». –
@KemalFadillah Я использую его в CSS. вот мой CSS для мяча: #ball { \t позиция: абсолютная; \t верх: 500px; \t Слева: 500 пикселей; \t } – aquatorrent
@KemalFadillah Это может быть проблема с несколькими браузерами. IE смиренно дает мне все значения стиля, определенные во внешних таблицах стилей. – Teemu