Показать сообщение отдельно
  #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>
Ответить с цитированием