javascript - 使用 CSS 交换 div 元素

标签 javascript html css

div 中有两个列表项和一个交换按钮。单击交换后,我必须更改元素的顺序。我可以使用下面的 swap 函数来实现它。

var ints = [ "1", "2", "3", "4" ],
    chars = [ "A", "B", "C", "D"],
    list1 = document.getElementById("list1"),
    list2 = document.getElementById("list2"),
    toggle = 0;

setList(list1, ints);
setList(list2, chars);

function setList(element, data) {
  for (var i in data) {  
    var elem = document.createElement("li");
    elem.innerText = data[i];
    element.appendChild(elem);
  }
}

function swap() {
  list1.innerHTML = "";
  list2.innerHTML = "";
  if(toggle==0) {
    setList(list1, chars);
    setList(list2, ints);
    toggle=1;
  } else {
    setList(list1, ints);
    setList(list2, chars);
    toggle=0;
  }  
}
.box {
  display: flex;
  align-items: center;
  position: absolute;
  top: 20px !important;
}
<div class="box">
<ul id="list1"></ul>
<ul id="list2"></ul>
</div>

<button id="btn" onclick="swap()">Swap</button>

我想知道是否可以使用 CSS 实现此功能。 代码也可以在codepen上测试https://codepen.io/imjaydeep/pen/EBvaxG?editors=1111

最佳答案

使用 CSS order 属性实现。

var ints = [ "1", "2", "3", "4" ],
    chars = [ "A", "B", "C", "D"],
    list1 = document.getElementById("list1"),
    list2 = document.getElementById("list2"),
    toggle = 0;

setList(list1, ints);
setList(list2, chars);

function setList(element, data) {
  for (var i in data) {  
    var elem = document.createElement("li");
    elem.innerText = data[i];
    element.appendChild(elem);
  }
}

function swap() {
  if (toggle==0) {
    list1.classList.remove('list1');
    list2.classList.add('list2');
    toggle=1;
  } else {
    list2.classList.remove('list2');
    list1.classList.add('list1');
    toggle=0;
  }  
}
.box {
  display: flex;
  align-items: center;
  position: absolute;
  top: 20px !important;
}

.list1 {
  order: 1;
}

.list2 {
  order: 1;
}
<div class="box">
<ul id="list1"></ul>
<ul id="list2"></ul>
</div>

<button id="btn" onclick="swap()">Swap</button>

关于javascript - 使用 CSS 交换 div 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56753340/

相关文章:

javascript - 使用 HTML5 Canvas 绘制圆形部分 - Math.PI

javascript - 在手机上点击下拉菜单时使容器保持原位

python - 如何在 Jinja2 中勾选复选框

c# - 如何在 C# 字符串中显示 HTML 内容?

javascript - 我可以使用 ASP.NET WebForms 母版页在每个内容页中包含不同的 javascript/css 文件吗?

javascript - 如何使图像成为可拖动的html

javascript - 为什么返回生成的 HTML 而不是 JSON 是一种不好的做法?或者是吗?

Javascript 函数仅在 Firefox 上运行一次

html - 如何使用 rmarkdown 在 pdf 中呈现 DT::datatables?

html - 如何将多个 less 文件输出到一个 css 文件中,该文件依赖于单独的 less 文件中的变量和混合