Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.05.2012, 01:39
Новичок на форуме
Отправить личное сообщение для Deself Посмотреть профиль Найти все сообщения от Deself
 
Регистрация: 18.05.2012
Сообщений: 3

Перемещение div блока
Народ, помогите нужно чтобы при нажатии на кнопку перемещялся div блок. Как это осуществить?
Вот код

<html>
<head>
<style>
.page2{
width:637;
height:660;}
.users{
width:238;
height:441;
padding-top:126px;}
.online{
width:236;
height:159;
background-image: url(images/online.png);
left:10px;}
.offline{
width:236;
height:232;
background-image: url(images/offline.png);}
</style>
</head>
<body>
<div class="page2">
<div class="users">
<div class="online" onclick="this.style.left=parseInt(this.style.left) +20+'px'"></div>
<div class="offline"></div>
</div>
<input type="submit">
<div class="square" onclick="this.style.left=parseInt(this.style.left) +20+'px'" style="left: 10px">111</div>
</div>
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 18.05.2012, 11:26
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

На мой взгляд, тут всё дело в том, что параметры, заданные в тегах <style></style> не задают свойство style, поэтому необходимо либо задать эти параметры в атрибуте style тега, либо явно установить их в коде.

<button id="myButton">&#8594</button>
<div id="myDiv"></div>

<script>
window.onload = function () {
  with (myDiv.style) {
    position = 'absolute';
    left = '60 px';
    top = '10 px';
    width = '40 px';
    height = '40 px';
    background = 'green';
  }
}

myButton.onclick = function () {
  myDiv.style.left = parseInt(myDiv.style.left) + 20 + 'px';
}
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 18.05.2012, 11:55
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от Deself Посмотреть сообщение
Народ, помогите нужно чтобы при нажатии на кнопку перемещялся div блок. Как это осуществить?
блоки у Вас статически позиционированны поэтому надо задавать не left а margin-left
....onclick=this.style['margin-left']='20px'
Ответить с цитированием
  #4 (permalink)  
Старый 18.05.2012, 14:06
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от vadim5june
блоки у Вас статически позиционированны поэтому надо задавать не left а margin-left
....onclick=this.style['margin-left']='20px'
Тот способ передвижения, который использует автор, сработает только при явно заданном свойстве style.left (для position: absolute || fixed) или style.marginLeft (для position: static || relative || absolute || fixed).

Но ваш способ также работоспособен, например, если ввести дополнительную переменную (другого пока на ум не приходит), например, var step = 0; и добавить в обработчик её увеличение:
onclick = "step = step + 20; this.style['margin-left'] = step + 'px'"
Ответить с цитированием
  #5 (permalink)  
Старый 18.05.2012, 14:12
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от bes Посмотреть сообщение
Но ваш способ также работоспособен, например, если ввести дополнительную переменную (другого пока на ум не приходит), например, var step = 0; и добавить в обработчик её увеличение:
onclick = "step = step + 20; this.style['margin-left'] = step + 'px'"
Если циклически то так
а в варианте автора я вместо parseInt(this.style.left)
пишу this.offsetLeft -при нестатическом позиционировании

Последний раз редактировалось vadim5june, 18.05.2012 в 14:16.
Ответить с цитированием
  #6 (permalink)  
Старый 18.05.2012, 14:26
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от vadim5june
а в варианте автора я вместо parseInt(this.style.left)
пишу this.offsetLeft -при нестатическом позиционировании
тоже вариант
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение блока при скроллинге region029 jQuery 11 06.10.2013 23:44
Фиксация блока DIV при сворачивании другого блока DIV kacnepbI4 jQuery 2 04.04.2011 14:15
Два блока div разъезжаются при скроллинге окна браузера. call007 jQuery 0 03.04.2011 16:21
Скрытие блока div и его составляющих pomuk123 Events/DOM/Window 6 14.02.2011 10:31
Скрытие, показ определённого div блока. Flashton Events/DOM/Window 5 11.04.2010 23:44