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

相关推荐
swipe9 分钟前
为什么 RAG 一定离不开向量检索:从文档向量化到语义搜索的工程实现
前端·llm·agent
OpenTiny社区37 分钟前
AI-Extension:让 AI 真的「看得到、动得了」你的浏览器
前端·ai编程·mcp
IT_陈寒39 分钟前
Redis缓存击穿:3个鲜为人知的防御策略,90%开发者都忽略了!
前端·人工智能·后端
农夫山泉不太甜2 小时前
Tauri v2 实战代码示例
前端
yuhaiqiang2 小时前
被 AI 忽悠后,开始怀念搜索引擎了?
前端·后端·面试
红色石头本尊2 小时前
1-umi-前端工程化搭建
前端
真夜2 小时前
关于对echart盒子设置百分比读取的宽高没有撑开盒子解决方案
前端
楠木6853 小时前
RAG 资料库 Demo 完整开发流程
前端·ai编程
肠胃炎3 小时前
挂载方式部署项目
服务器·前端·nginx
像我这样帅的人丶你还3 小时前
使用 Next.js + Prisma + MySQL 开发全栈项目
前端