TierListMaker:修订间差异
来自卡厄思梦境WIKI
无编辑摘要 |
无编辑摘要 |
||
| 第211行: | 第211行: | ||
e.preventDefault(); | e.preventDefault(); | ||
e.dataTransfer.dropEffect = 'move'; | e.dataTransfer.dropEffect = 'move'; | ||
const dragging = document.querySelector('.avatar-frame.dragging'); | const dragging = document.querySelector('.avatar-frame.dragging'); | ||
if (!dragging) return; | if (!dragging) return; | ||
if (afterElement == null) { | |||
const afterElement = getDragAfterElement(zone, e.clientY); | |||
// 安全地移动元素 | |||
try { | |||
if (afterElement == null) { | |||
// 如果元素不在当前zone中,则添加 | |||
if (dragging.parentNode !== zone) { | |||
zone.appendChild(dragging); | |||
} | |||
} else { | |||
// 确保afterElement仍然是zone的子元素 | |||
if (zone.contains(afterElement) && dragging !== afterElement) { | |||
zone.insertBefore(dragging, afterElement); | |||
} | |||
} | |||
} catch (err) { | |||
// 如果出错,就简单地添加到末尾 | |||
console.warn('Insert error, appending instead:', err); | |||
if (dragging.parentNode !== zone) { | |||
zone.appendChild(dragging); | |||
} | |||
} | } | ||
}); | }); | ||
zone.addEventListener('drop', function(e) { | zone.addEventListener('drop', function(e) { | ||
e.preventDefault(); | e.preventDefault(); | ||
const dragging = document.querySelector('.avatar-frame.dragging'); | const dragging = document.querySelector('.avatar-frame.dragging'); | ||
if (dragging) { | if (dragging) { | ||
// | // 确保元素在正确的位置 | ||
if (!zone.contains(dragging)) { | if (!zone.contains(dragging)) { | ||
zone.appendChild(dragging); | zone.appendChild(dragging); | ||
| 第296行: | 第315行: | ||
palette.style.top = (window.scrollY + rect.bottom + 6) + 'px'; | palette.style.top = (window.scrollY + rect.bottom + 6) + 'px'; | ||
} | } | ||
toggle.addEventListener('click', function() { | toggle.addEventListener('click', function(e) { | ||
e.stopPropagation(); | |||
if (palette.style.display === 'block') { | if (palette.style.display === 'block') { | ||
palette.style.display = 'none'; | palette.style.display = 'none'; | ||