ุงูุณูุงู ุนูููู ๐
ุชุนุงููุง ูุดูู ุงูููุงุฑุฏุฉ ุฅุฒุงู ููุฏุฑ ูุนู ู drag & drop ูู elements ๐ง
ุฃููุงู ูุงุฒู ูุถูู draggable=true ูู element ุงููู ูุนู ูู drag & drop ู ูู ุงู ููุฏููู ุฅุณู ููุงุณ ู ูุนุจุฑ ุนุดุงู ูุณุชุฎุฏู ู ุจุนุฏูู ุฒู ุงูุฅุณู ุฏุง element-dragged-dropped ๐ค
ุซุงููุงู ููุถูู ูู element ู ู ุฏูู ุฌูุง parent ุฎุงุต ุจูู, ู ููุนุฑู ููู ุนู ููุง ูุฏุง .. ุชุนุงููุง ููุง ุนุดุงู ูุดูู ุงูููุฏ ููููู ุดููู ุฅูู ๐
const items = document.querySelectorAll('.element-dragged-dropped');
items.forEach(item => {
item.addEventListener('dragstart', dragStart);
});
function dragStart(e) {
e.dataTransfer.setData('text/plain', e.target.id);
}
/* drop targets */
const boxes = document.querySelectorAll('.parent-dragged-dropped-elements');
boxes.forEach(box => {
box.style.cursor = "pointer";
box.addEventListener('dragenter', dragEnter)
box.addEventListener('dragover', dragOver);
box.addEventListener('dragleave', dragLeave);
box.addEventListener('drop', drop);
});
function dragEnter(e) {
e.preventDefault();
if (e.target.classList[0] == "element-dragged-dropped") {
e.target.classList.add('drag-over');
}
}
function dragOver(e) {
e.preventDefault();
if (e.target.classList[0] == "element-dragged-dropped") {
e.target.classList.add('drag-over');
}
}
function dragLeave(e) {
e.target.classList.remove('drag-over');
}
function drop(e) {
e.target.classList.remove('drag-over');
// get the draggable element
const id = e.dataTransfer.getData('text/plain');
const draggable = document.getElementById(id);
// add it to the drop target
if (e.target.classList[0] == "element-dragged-dropped") {
e.target.previousSibling.parentElement.after(draggable.previousSibling.parentElement);
}
}
ููุง ุจููุง ูุดุฑุญ ุงูููุฏ ุงููู ูุงุช ุฏุง ๐
ุฃููุงู ุฅุญูุง ุฌุจูุง ูู ุงู elements ุงููู ูููุง ููุงุณ element-dragged-dropped ู ุนู ููุง ููุจ ุนูููู ุนุดุงู ูุฏูููู event ุงู dragstart ู ููุณ ุงูููุงู ุฏุง ู ุน ุงู parent ุงูุฎุงุต ุจูู element ู ูู ุงู ุฒูุฏูุง ุนูู ุงู events ุฌุฒุก ุฎุงุต ุจุงู styling ุจุญูุซ ุฅูู ูุธูุฑ hand ุฃุซูุงุก ุนู ููุฉ ุงู drag & drop ู ูู ูู ุงู functions ุนุฏุง dragLeave ููุช ุจุนู ู check ุนูู ุงู element ุงููู ุจุนู ูู drag & drop ูู ููู ุฅุณู ููุงุณ ู ูุนูู ุจุฏููู ููุงุณ ู ู ุนูุฏู -ููุดููู ุจุนุฏูู- ุจุนุฑู ุฅู ุฏุง ูู ุงููู ุจูุญุตูู drag ู ูู ุนูู ููุฉ ุงู drop ููุช ุจุนู ู ููุณ ุงูุญุงุฌุฉ ู ุจุฌูุจ ุงู parent ุจุชุงุน ุงู element ุฏุง ุนุดุงู ุฃุถูู ุงู element ุฏุง ุจุนุฏู ู ุนุดุงู ูุฏุง ุถูููุง ุงู parent ๐
ู ุฏูููุชู ููุดูู ุงูููุงุณ ุงููู ููุง ุจูุถููู ูู element ุนุดุงู ูุฎูู ุดููู ุฌู ูู ๐คฉ
.drag-over {
border: dashed 3px gray;
}
ู ุจูุฏุง ุฃููู ุฎูุตุช ู ุฃุชู ูู ุชููู ุฅุณุชูุฏุช โ