javascript - 当我们切换到具有相同父类但嵌套在两个不同 div 中的移动视图时,我正在尝试切换到部分
问题描述
如何使用 Javascript 或 CSS 实现这一点。代码语法的简单示例是:
<div class="container">
<div class="row">
<section class="one">
<p>First Line</p>
</section>
<section class="two">
<p> Second line</p>
</section>
</div>
<div class="row">
<section class="three">
<p>Third Line</p>
</section>
<section class="four">
<p> Fourth line</p>
</section>
</div>
</div>
每当我更改为移动视图时,我想根据此代码交换第二行和第三行。在此之前,第一行和第二行是一排,第三行和第四行是一排。现在,当我们切换到移动视图时,所有内容都从上到下堆叠,但我需要更改移动视图中第二(蓝色)和第三(绿色)线的位置。
解决方案
您可以交换innerHTML
两个节点中的一个以交换文本和“classList”以交换类(颜色)。检查下面的代码片段,我使用数组破坏进行交换。
您可以window.matchMedia
用于基于某些媒体查询的交换。
const sectionTwo = document.querySelector(".two");
const sectionThree = document.querySelector(".three");
function swapNodes(nodeOne, nodeTwo) {
[nodeTwo.innerHTML, nodeOne.innerHTML] = [nodeOne.innerHTML, nodeTwo.innerHTML];
[nodeTwo.classList, nodeOne.classList] = [nodeOne.classList, nodeTwo.classList];
}
if (matchMedia) {
const mq = window.matchMedia("(max-width: 500px)");
mq.addListener(widthChange);
widthChange(mq);
}
// media query change
function widthChange(mq) {
if(mq.matches){
swapNodes(sectionTwo, sectionThree);
}
}
<div class="container">
<div class="row">
<section class="one">
<p>First Line</p>
</section>
<section class="two">
<p> Second line</p>
</section>
</div>
<div class="row">
<section class="three">
<p>Third Line</p>
</section>
<section class="four">
<p> Fourth line</p>
</section>
</div>
</div>
推荐阅读
- javascript - 尝试链接过滤器选项选择
- java - 处理告警通知
- python - 让游戏中的蛇一点一点移动而不是整体移动
- cuda - PyCUDA mem_get_ipc_handle 给出 LogicError: cuIpcGetMemHandle failed: operation not supported
- python - 可能溢出?
- javascript - React js - componentDidMount() 代码是否作为 JavaScript 发送到客户端浏览器?
- angular - 以角度将小更改上传到生产服务器
- swift - [Swift[如何遍历对象的所有属性
- c# - Atata iframe SwitchTo 方法编译错误:使用泛型类型需要 1 个类型参数
- go - Golang获取当前文化的小数分隔符