Как создать drag-n-drop функциональность без библиотек
ฝัง
- เผยแพร่เมื่อ 30 มิ.ย. 2024
- В этом видео я покажу вам, как создать drag-n-drop функциональность без использования каких-либо библиотек. Следуя простым шагам, вы сможете разобраться какие события существуют в JS для работы с dnd, а главное поймете как именно нужно их обрабатывать.
••••••••••••••
0:00 Описание проекта
0:21 Добавление HTML & CSS
4:21 Теория по событиям drag-n-drop
7:13 Разбираемся с JavaScript
12:06 Вносим доработки в CSS
15:16 Окончание
••••••••••••••
Спасибо за внимание ♥︎
Офигенно )) Просто понравилось) И даже не в теме дело ( тема интересная - тут безусловно) а просто приятно было смотреть ( и я не знаю в чем тут магия))) Удачи в развитии канала!
Спасибо за отзыв, очень приятно)
Супер, спасибо))
топчик)
кратко и понятно
спасибо)
Привет, спасибо за фидбек)
Спасибо огромное, очень помогло))
спасибо, очень коротко и очень понятно)
Привет, рада, что зашло)
С П А С И Б О ! ! !
А можно сделать в hold opacity - 0 вместо таймаута? Вроде бы визуально тот же эффект.
Спасибо за видео. Можете объяснить про this.className = 'invisible'. Я не понимаю, как это работает
просто убирает все классы что мы до этого навешивали на перетаскиваемый блок, чтобы он стал невидимый. На самом деле он там есть. Скорее более бы органичней выглядел код className = "" (опустошаем классы)
Подскажи что за тема стоит на vs code?
Вот эта: marketplace.visualstudio.com/items?itemName=BeardedBear.beardedtheme
Вариант: Bearded Theme Arc
Хорошо, бы исходники ((((_))))
Привет, лови github.com/GuVictory/mini-projects/tree/main/drag-n-drop
Привет, а если со смещением?
Привет, по какое смещение идёт речь?)
@@WebDevSandbox имеется ввиду возможность перемещать элементы между собой
@@Maxim9575 ну а чо там, остальное уже банальный код js. запоминаешь где чо было, меняешь местами при дропе. Или сортируешь, в зависимости от задачи
@@Mr.Bellamy я то знаю как все это делается. Я лишь высказал предположение что имел ввиду ТС
@@Maxim9575 я чет подумал коммент и первое сообщение от одного человека, когда отвечал)
чет не понял прикола с таймаутом. зачем он там?
Дело в том, что без таймаута есть вероятность, что превью тоже получит обновленные стили и пропадет
Чтобы понять надо знать как работает ивент луп. Кстати, тайммаут это макротаска, а не микро как сказано в видео.
На основе нашего элемента формируется "фантомная" полупрозрачная копия, которую мы перетаскиваем в браузере. Если просто снять все классы, то эта копия будет невидимой тоже и мы будем перетаскивать воздух. Из-за сет таймаута мы ставим удаление всех классов в самый конец выполняемых задач и получается так, что сначала браузер создает фантомную копию, которую мы хотим, а только потом изначальный объект который мы дропаем становится невидимый.