Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.08.2015, 12:12
Аватар для AntonMs
Профессор
Отправить личное сообщение для AntonMs Посмотреть профиль Найти все сообщения от AntonMs
 
Регистрация: 25.01.2015
Сообщений: 163

Как переместить DOM элемент?
Подскажите пожалуйста как при нажатии на соответствующие кнопки перемещать контейнер div ?
<div>
<button class='up'>Меня вверх</button>
<button class='down'>Меня вниз</button>
</div>

<div>
<button class='up'>Меня вверх</button>
<button class='down'>Меня вниз</button>
</div>

<div>
<button class='up'>Меня вверх</button>
<button class='down'>Меня вниз</button>
</div>
$(document.getElementsByClassName('up')).click(function(){
this.parentNode //не знаю что дальше делать с этим?
})
Ответить с цитированием
  #2 (permalink)  
Старый 06.08.2015, 14:26
Профессор
Отправить личное сообщение для demoniqus Посмотреть профиль Найти все сообщения от demoniqus
 
Регистрация: 28.05.2008
Сообщений: 181

Перемещение может быть:
1) По DOM-дереву - вряд ли ты этого хотел
2) Простое изменение координат (left, top)
Задай перемещаемому и ограничивающему контейнерам правильное позиционирование (absolute и relative) и при клике по кнопкам вызывай изменение координат примерно так div.top += 10 или div.top -= 10
3) Сделай циклическое перемещение или просто запрет на выход за рамки ограничивающего элемента, чтобы они не исчезали из поля зрения
Ответить с цитированием
  #3 (permalink)  
Старый 06.08.2015, 17:13
Аватар для AntonMs
Профессор
Отправить личное сообщение для AntonMs Посмотреть профиль Найти все сообщения от AntonMs
 
Регистрация: 25.01.2015
Сообщений: 163

demoniqus, а по конкретней, ссылку на то что может помочь, пожалуйста.
Ответить с цитированием
  #4 (permalink)  
Старый 06.08.2015, 17:40
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title></title>
    <!--<script src="http://code.jquery.com/jquery-latest.js"></script>-->
    <style>
        body { display: flex; justify-content: center; }
        .block { width: 30%;  text-align: center; }
        .first { background: green; }
        .second { background: blue; }
        .third {  background: red; }
    </style>
<body>
    <div class="block">
        <div class="first">
            <button class='up'>Меня вверх</button>
            <button class='down'>Меня вниз</button>
        </div>

        <div class="second">
            <button class='up'>Меня вверх</button>
            <button class='down'>Меня вниз</button>
        </div>

        <div class="third">
            <button class='up'>Меня вверх</button>
            <button class='down'>Меня вниз</button>
        </div>
    </div>

    <script>
        [].forEach.call(document.getElementsByTagName('button'), function(item) {
            item.addEventListener('click', function(e) {
                var target = e.target, div = target.parentNode, parentDiv = div.parentNode;

                if( target.classList.contains('up') ) {
                    (parentDiv.firstElementChild == div)
                            ? parentDiv.insertAdjacentElement('beforeEnd', div)
                            : div.previousElementSibling.insertAdjacentElement('beforeBegin', div);
                } else if( target.classList.contains('down') ) {
                    (parentDiv.lastElementChild == div)
                            ? parentDiv.insertAdjacentElement('afterBegin', div)
                            : div.nextElementSibling.insertAdjacentElement('afterEnd', div);
                }
            });
        });
    </script>
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 06.08.2015, 17:57
Аватар для AntonMs
Профессор
Отправить личное сообщение для AntonMs Посмотреть профиль Найти все сообщения от AntonMs
 
Регистрация: 25.01.2015
Сообщений: 163

Decode, спасибо.
Ответить с цитированием
  #6 (permalink)  
Старый 07.08.2015, 05:31
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Decode, в firefox не пашет
Ответить с цитированием
  #7 (permalink)  
Старый 07.08.2015, 18:44
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

Rise,
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title></title>
    <!--<script src="http://code.jquery.com/jquery-latest.js"></script>-->
    <style>
        body { display: flex; justify-content: center; }
        .block { width: 30%;  text-align: center; }
        .first { background: green; }
        .second { background: blue; }
        .third {  background: red; }
    </style>
<body>
  <div class="block">
    <div class="first">
      <button class='up'>Меня вверх</button>
      <button class='down'>Меня вниз</button>
    </div>

    <div class="second">
      <button class='up'>Меня вверх</button>
      <button class='down'>Меня вниз</button>
    </div>

    <div class="third">
      <button class='up'>Меня вверх</button>
      <button class='down'>Меня вниз</button>
    </div>
  </div>
  <script src="https://ru.js.cx/article/multi-insert/insertAdjacentFF.js"></script>
  <script>
    [].forEach.call(document.getElementsByTagName('button'), function(item) {
      item.addEventListener('click', function(e) {
        var target = e.target, div = target.parentNode, parentDiv = div.parentNode;

        if( target.classList.contains('up') ) {
          (parentDiv.firstElementChild == div)
            ? parentDiv.insertAdjacentElement('beforeEnd', div)
          : div.previousElementSibling.insertAdjacentElement('beforeBegin', div);
        } else if( target.classList.contains('down') ) {
          (parentDiv.lastElementChild == div)
            ? parentDiv.insertAdjacentElement('afterBegin', div)
          : div.nextElementSibling.insertAdjacentElement('afterEnd', div);
        }
      });
    });
  </script>
</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать чтобы элемент появлялся при скроле страницы, у определенного класса. SnakeAce Общие вопросы Javascript 1 30.01.2013 14:32
Как получит ссылку на элемент внутри которого запустили JS код? aRpi Events/DOM/Window 20 02.10.2011 13:36
Новый элемент отсутствует в DOM модели StrSprut jQuery 4 19.09.2011 12:50
Как добавить элемент в XML через DOM используя PHP? bayah Серверные языки и технологии 6 11.08.2010 13:33
Навигация внутри DOM. Как это сделать нормально? master_alf Events/DOM/Window 10 09.04.2010 10:18