在html中使用js动态交换两个元素的位置

大家好,我的开源项目PakePlus可以将网页/Vue/React项目打包为桌面/手机应用并且小于5M只需几分钟,官网地址:pakeplus.com

  1. DOM操作交换

使用 insertBefore 或 replaceChild 方法直接操作DOM元素

javascript 复制代码
function swapElementsDOM() {
  const container = document.getElementById('elementsContainer');
  const element1 = document.getElementById('element1');
  const element2 = document.getElementById('element2');

  if (element1.nextElementSibling === element2) {
    container.insertBefore(element2, element1);
  } else {
    container.insertBefore(element1, element2);
  }
}
  1. CSS类切换交换

通过切换CSS类来改变元素的显示顺序(使用flex-direction或order属性)

javascript 复制代码
function swapElementsCSS() {
  const container = document.getElementById('elementsContainer');
  container.classList.toggle('reversed');
}

/* CSS部分 */
.reversed {
  flex-direction: column-reverse;
}
  1. 动画交换

使用CSS过渡或动画实现平滑的位置交换效果

javascript 复制代码
function swapElementsAnimated() {
  const element1 = document.getElementById('element1');
  const element2 = document.getElementById('element2');

  // 添加动画类
  element1.classList.add('swapping');
  element2.classList.add('swapping');

  setTimeout(() => {
    // 实际交换位置
    const container = document.getElementById('elementsContainer');
    if (element1.nextElementSibling === element2) {
      container.insertBefore(element2, element1);
    } else {
      container.insertBefore(element1, element2);
    }

    // 移除动画类
    element1.classList.remove('swapping');
    element2.classList.remove('swapping');
  }, 300);
}

大家好,我是1024小神,技术群 / 私活群 / 股票群 或 交朋友 都可以私信我。 如果你觉得本文有用,一键三连 (点赞、评论、关注),就是对我最大的支持~

相关推荐
passerma10 分钟前
解决qiankun框架子应用打包后css里的图片加载404失败问题
前端·微前端·qiankun
Aliex_git22 分钟前
性能优化 - Vue 日常实践优化
前端·javascript·vue.js·笔记·学习·性能优化
董世昌4125 分钟前
添加、删除、替换、插入元素的全方法指南
java·开发语言·前端
qq_3168377531 分钟前
Element-Plus el-table lazy 自动更新子列表
前端·vue.js·elementui
林恒smileZAZ1 小时前
Electron 的西天取经
前端·javascript·electron
这就是佬们吗1 小时前
告别 Node.js 版本冲突:NVM 安装与使用全攻略
java·linux·前端·windows·node.js·mac·web
IT_陈寒1 小时前
2024年JavaScript开发者必备的10个ES13新特性实战指南
前端·人工智能·后端
满栀5851 小时前
基于 jQuery 实现商品列表增删改查与数据统计
前端·javascript·jquery
web小白成长日记1 小时前
CSS 作用域隔离实战:React、Vue 与 Styled Components 的三种范式
前端·css·vue.js·react.js
Mr -老鬼1 小时前
Electron 与 Tauri 全方位对比指南(2026版)
前端·javascript·rust·electron·nodejs·tauri