欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

javascript 拖拽排序

錢多多1年前6瀏覽0評論

javascript是一門強大的編程語言,它可以用來創造豐富的用戶界面和豐富的互聯網應用程序。其中,拖拽排序是javascript中重要的部分之一。本文將向讀者介紹javascript拖拽排序的實現方法。

拖拽排序功能被廣泛應用于網頁設計和互聯網應用程序中。在網頁設計中,用戶可以通過拖拽元素的方式實現頁面重排,使得用戶界面更加美觀和直觀。在互聯網應用程序中,拖拽排序常被用來改變列表或樹形節點的順序,從而達到更好的用戶體驗。

// HTML代碼
  • Item 1
  • Item 2
  • Item 3
// javascript代碼 const list = document.getElementById('list'); let dragItem = null; list.addEventListener('dragstart', e =>{ dragItem = e.target; }); list.addEventListener('dragover', e =>{ e.preventDefault(); const afterElement = getDragAfterElement(list, e.clientY); const parent = list.parentElement; if (afterElement == null) { parent.appendChild(dragItem); } else { parent.insertBefore(dragItem, afterElement); } }); function getDragAfterElement(container, y) { const draggableElements = [...container.querySelectorAll('li:not(.dragging)')]; return draggableElements.reduce((closest, child) =>{ const box = child.getBoundingClientRect(); const offset = y - box.top - box.height / 2; if (offset< 0 && offset >closest.offset) { return { offset: offset, element: child }; } else { return closest; } }, { offset: Number.NEGATIVE_INFINITY }).element; }

以上是javascript實現拖拽排序的基本代碼。代碼中包含3個事件監聽器:dragstart、dragover、dragend。其中,dragstart和dragend事件處理程序用于設置拖拽項并在拖拽結束時重置該項。dragover事件處理程序是最關鍵的,用于移動拖拽項到目標位置。

在上述代碼中,getDragAfterElement函數被用于確定拖拽項放入其父元素的哪個位置。在前面的if條件分支中,如果afterElement變量的值為null(即拖拽項已經到達父元素的底部),則dragItem(即拖拽項)被追加到parent元素中。否則,parent元素使用insertBefore方法將dragItem(即拖拽項)插入到afterElement元素之前。

拖拽排序功能是實現動態頁面交互的一種有效方法,可以為用戶提供更好的用戶體驗。通過javascript編寫的拖拽排序功能易于實現,且易于理解和修改。本文提供的javascript拖拽排序代碼可以在您的web應用程序中靈活使用,以提高您的用戶體驗和應用程序的易用性。