Как отсортировать div по горизонтали, используя Sortable в JQuery

21

Я хочу отсортировать мои div по горизонтали в контейнере div.
Я нашел пример на сайте JQuery, но это вертикальная сортировка. Я хочу это горизонтальное.

Я хочу сделать сортировку в #sortable <div>.

Подскажите, пожалуйста, как мне преобразовать вертикальную сортировку по горизонтали?

CSS

<style type="text/css">
    #draggable1 { width: 150px; height: 35px; padding: 0.5em; }
    #draggable2 { width: 150px; height: 35px; padding: 0.5em; }
    #draggable3 { width: 150px; height: 35px; padding: 0.5em; }

    #sortable { width: 700px; height: 35px; padding: 0.5em; }
</style>

JavaScript

<script type="text/javascript">
    $(function() {  
        $("#sortable").sortable({
            revert: true
        }); 
    });
</script>

HTML

<div class="demo">
    <div id="sortable" class="ui-state-default">
        <div id = "draggable1" class="ui-state-default">Home</div>
        <div id = "draggable2" class="ui-state-default">Contact Us</div>
        <div id = "draggable3" class="ui-state-default">FAQs</div>
    </div>
</div>
  • 0
    Я сделал небольшой скрипт для этого в vanilla js: dragsort.js
Теги:
jquery-ui-sortable

3 ответа

25
Лучший ответ

Вы можете просто добавить этот стиль CSS:

#sortable>div { float: left; }

И они будут горизонтальными и все еще сортируемыми. Здесь вы можете увидеть демонстрацию этого действия.

  • 1
    Работает, спасибо :)
  • 0
    Это лучший ответ для совместимости браузера. Не забудьте стилизовать заполнитель с помощью float: left. Если вы добавляете динамические элементы в свой список, вам также может понадобиться управление div «clear: both» внизу списка, чтобы сохранить объем / высоту самого списка.
4

Хотя float:left работает, здесь я бы предпочел использовать display:inline-table для div, так что вы не потеряете объем своих div...

3

просто добавьте в свой CSS: display: inline-block;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню