изменение style.left и top через document.getElementById
Есть html страничка с изображением и его id="pic".
<html> <head> <title>Engine</title> <script type="text/javascript" language="javascript" src="engine.js"></script> </head> <body onLoad="first()"> <img src="box.gif" id="pic" style="position: absolute; left:100; top:100"></img> </body> </html> С помощью этого js нужно поменять style изображения на html страничке. А именно его left и top (увеличить их на 100 и 200). Полученые данные в var top и var left выглядят так: 100px цифра с приставкой 'px', тоесть с ней я не могу добавить к top или left другое число...
function first(){
// Получаем нынешнее значение top изображения
var top = document.getElementById("pic").style.top;
// Получаем нынешнее значение left изображения
var left = document.getElementById("pic").style.left;
// Меняем src изображения
document.getElementById("pic").src="circle.gif";
// Меняем style изображения, нужно добавить к left 100 и к top 200
document.getElementById("pic").style="position: absolute; left:" + (left+100) + "; top:" + (top+200) + "";
}
сейчас выходит так:
var top = 100px;
document.getElementById("pic").style="position: absolute; top:" + (100px+200) + "";
Выходит что код картинки будет таков: <img src="box.gif" id="pic" style="position: absolute; left:100; top:100px100"></img> Как это решить? И как эти два действия слить в один?
document.getElementById("pic").src="circle.gif";
document.getElementById("pic").style="position: absolute; left:" + (left+100) + "; top:" + (top+200) + "";
Как-то так...но так не работает:
document.getElementById("pic").src="circle.gif".style="position: absolute; left:" + (left+100) + "; top:" + (top+200) + "";
|
Цитата:
Цитата:
|
для сокращения количества кода? можно так сделать?
А ParseInt пример можно на базе моего кода? |
Цитата:
Цитата:
|
;) пожалуйста, поменяй код..я так не доганяю ничего)
|
var el = document.getElementById('pic');
el.src="circle.gif";
var top = el.style.top, left=el.style.left; //тут будут, например 100px
top = parseInt(top); // теперь будет 100 без 'px'
left = parseInt(left);
el.style.top = (top+100)+'px'; // css требудет указания размерности
el.style.left = (left+100)+'px';
обьединить не получится. т.к. ты работаешь на разных уровнях свойств обьекта и к томуже операции присваивания возвращают не обьект, а результат присваивания. |
:) Спасибище, теперь понял
|
Цитата:
Как вариант можно использовать этот код var el = document.getElementById('pic'); el.src="circle.gif"; var top = el.style.top, left=el.style.left; //тут будут, например 100px top = parseInt(top); // теперь будет 100 без 'px' left = parseInt(left); el.style.top = (top+100)+'px'; // css требудет указания размерности el.style.left = (left+100)+'px'; |
| Часовой пояс GMT +3, время: 15:00. |