Я использую Vue.Draggable для реализации сортировки перетаскиванием элемента таблицы. Некоторые из перетаскиваемых элементов в таблице довольно высокие (теги tbody с большим количеством строк), поэтому я хотел бы уменьшить высоту так называемого «призрачного» элемента во время перетаскивания.
Чтобы уточнить, перетаскиваемый «призрачный» элемент — это копия перетаскиваемого элемента, которая меняет положение в списке в режиме реального времени. В этом примере это синий элемент: https://sortablejs.github.io/Vue.Draggable/#/простой (Я не говорю о «перетаскивании изображения»: копия перетаскиваемого элемента, которая прилипает к курсору мыши)
Я попытался скрыть все, кроме первой строки таблицы с помощью CSS:
.sortable-drag tr:not(:first-child) {
display: none;
}
Но библиотека использует высоту перетаскиваемого элемента для вычисления его положения относительно курсора мыши, так что это делает процесс перетаскивания глючным и непредсказуемым.
Vue.Draggable построен на Sortable JS и запускает ряд событий, поэтому мне интересно, есть ли способ настроить элемент, когда начинается перетаскивание, если нет какой-либо опции в Vue.Draggable/Sortable, которую я могу использовать.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Приведенный выше подход (скрытие всех строк, кроме первой, с помощью CSS) на самом деле работает так, как ожидалось, но не без дополнительной настройки. «Глючное и непредсказуемое» поведение, которое я видел, было связано с несвязанной функцией в Sortable JS:
Sortable JS Wiki: вариант направления
Sortable попытается автоматически определить, какое направление используется по умолчанию, но лучше, если вы сами зададите это значение.
Как только я указал, что таблица должна сортироваться только по вертикали (установив свойство direction = "vertical" в моем компоненте Draggable), призрак перетаскивания начал работать так, как я надеялся.