javascript - 小屏幕上的 insertBefore div 和大屏幕上的 insertAfter

标签 javascript jquery append

在我的示例中,我尝试仅在大屏幕上将小 Div 插入到大 Div 上方。然后,在调整窗口大小时,我想仅在小屏幕上的中 Div 下方插入相同的小 Div。 问题是,每次我调整窗口大小时,小 Div 都会被一遍又一遍地添加,而我希望它只添加一次。

请注意,我正在寻找 JS 或 jQuery 解决方案。

问候。

var smallDiv = '<div class="small">Small Div</div>';

function moveDiv() {
  if ($(window).width() < 800) {
    $(smallDiv).insertBefore(".large");
  } else {
    $(smallDiv).insertAfter(".medium");
  }
}
moveDiv();
$(window).resize(moveDiv);

<!-- begin snippet: js hide: false console: true babel: false -->
.large {
  width: 100%;
  height: 80px;
  background-color: darkgray;
}

.medium {
  width: 100%;
  height: 50px;
  background-color: goldenrod;
}

.small {
  width: 100%;
  height: 30px;
  background-color: aquamarine;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="large">Large Div</div>
<div class="medium">Medium Div</div>

最佳答案

Renlado 的回答缺少问题的一部分。您可以按照建议使用 Flex-box,并使用 order 属性对元素进行排序。

.container {
  display: flex;
  flex-direction: column;
}

.container>div {
  order: 1
}

.container>.small {
  order: 0;
}

@media only screen and (max-width: 800px) {
  .container .small {
    order: 2;
  }
}
<div class="container">
  <div class="large">Large Div</div>
  <div class="medium">Medium Div</div>
  <div class="small">Small Div</div>
</div>

关于javascript - 小屏幕上的 insertBefore div 和大屏幕上的 insertAfter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59080540/

相关文章:

Jquery .change 在 Chrome 中不起作用

python - 如何修复单链表方法追加中的错误

windows - 在 Windows 和 Linux 上使用 Perl append 到 Excel 电子表格

javascript - 根据浏览器窗口尺寸自动调整图像大小

javascript - 格式化后的日期值返回 'undefined'

javascript - ajax 未检测到图像裁剪

javascript - 创建一行水平排列的 div。我的代码有什么问题?

javascript - 是否可以使用简写将数据添加到选项中?

javascript - 单击按钮无法将值传递给函数

javascript - 刷新页面时,使用 javascript 构建的计时器会重置吗?如何避免?