Как настроить элемент «призрак» с помощью Vue.Draggable

Я использую 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, которую я могу использовать.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
68
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Sortable JS Wiki: вариант направления

Sortable попытается автоматически определить, какое направление используется по умолчанию, но лучше, если вы сами зададите это значение.

Как только я указал, что таблица должна сортироваться только по вертикали (установив свойство direction = "vertical" в моем компоненте Draggable), призрак перетаскивания начал работать так, как я надеялся.

Другие вопросы по теме