У меня есть перетаскиваемый список элементов. Единственный jQuery, который я использую:

$('.section_rows').sortable();

Это отлично работает. Однако, когда я нахожусь внизу страницы (вертикальная прокрутка полностью внизу) и щелкаю строку, чтобы перетащить и отсортировать ее, страница «подпрыгивает» на 55px. Хотя функционально это не имеет большого значения, это ужасный пользовательский опыт (а перетаскиваемые строки расположены внизу этой страницы, поэтому этот сбой неизменно происходит).

Я взглянул на HTML, и похоже, что jQuery добавляет класс с именем '.ui-sortable-helper', который содержит стиль с высотой 55 пикселей.

Есть ли способ, которым я могу отключить это или заставить страницу «не двигаться», когда перетаскиваемый элемент выбран?

1
David542 22 Янв 2013 в 04:37

2 ответа

Лучший ответ

Похоже, вам нужен заполнитель для сохранения списка на той же высоте. Пытаться:

$(".section_rows").sortable(P{
   placeholder: 'ui-state-highlight'
});

Убедитесь, что CSS для .ui-state-highlight установлен на соответствующую высоту.

1
Explosion Pills 22 Янв 2013 в 01:00

Вручную добавьте заполнитель в функцию sortable (http://jqueryui.com/sortable/#placeholder), и стиль, который:

$('.section_rows').sortable({placeholder: "ui-state-highlight"});

.ui-state-highlight {
    height: 55px;
    line-height: 1.2em;
    background: rgb(250, 252, 255)!important;
    border: none!important;
}
0
David542 22 Янв 2013 в 00:53