javascript - 如何仅在较小的屏幕尺寸上使用 jQuery appendTo,但在较大的屏幕上返回正常位置

标签 javascript jquery html css responsive-design

我有一个位于桌面侧边栏中的 div,当它向下移动到移动设备时 (< 992),我希望该 div 转到页面底部,位于主要内容中显示的最后一个 div 下方在更大的屏幕上(> 992)。我在文档加载和窗口调整大小时都触发了 appendTo。

目前,当我将窗口的大小调整为小于 992 时,div 会向下移动,但是当我将其调整为大于 992 时,它会停留在底部并且不会返回到侧边栏。这是我目前拥有的:

<div class="sidebar hidden-sm hidden-xs">
  <div class="some-div">This should go away on mobile and is not always  present so I can't append the next div to me on bigger screens</div>
  <div class="important-info">This should move to other div on mobile</div>
  <div class="some-div">This should go away on mobile</div>
</div>

<div class="middle-content">
      <div class="stuff">always shown on mobile and desktop</div>
</div>

我的 JS 是:

function moveDiv() {
    if ($(window).width() < 992) {
        $('.important-info').appendTo('.middle-content');
    } else {
        return;
    }
}
moveDiv();
$(window).resize(moveDiv);

如果有人可以指导我在更大的屏幕上让我的内容返回侧边栏并离开中间内容,那就太好了!提前致谢:)

最佳答案

只需添加代码即可将其移回。我使用了包装器来更轻松地在其他元素之间正确定位重要信息。

请注意,我假设您使用的是 CSS Media隐藏 some-div 的查询,您只需要在 DOM 中“物理地”重新定位 important-info(这不能用 CSS 完成)。如果你能弄清楚如何摆脱纯 CSS 解决方案,那通常会更高效且更易于维护。我假设您有一些要求迫使您在 DOM 中重新定位元素,而不仅仅是重新设计它的样式。

function moveDiv() {
    if ($(window).width() < 992) {
        $('.important-info').appendTo('.middle-content');
    } else {
        $('.important-info').appendTo('#important-info-wrapper-desktop');
    }
}
moveDiv();
$(window).resize(moveDiv);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="sidebar hidden-sm hidden-xs">
  <div class="some-div">This should go away on mobile and is not always  present so I can't append the next div to me on bigger screens</div>
  <div id="important-info-wrapper-desktop">
    <div class="important-info">This should move to other div on mobile</div>
  </div>
  <div class="some-div">This should go away on mobile</div>
</div>

<div class="middle-content">
      <div class="stuff">always shown on mobile and desktop</div>
</div>

关于javascript - 如何仅在较小的屏幕尺寸上使用 jQuery appendTo,但在较大的屏幕上返回正常位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35707338/

相关文章:

javascript - 创建的元素与上一个元素略有偏移,我错过了什么?

javascript - 使用圆环图时出现的问题

asp.net - 箭头键无法在 IE7 上滚动我们的网站

javascript - 如何在javascript中重置图像尺寸? (MVC)

javascript - Jquery - 如果元素包含一个类,在元素之后添加 HTML

javascript - 测试数组中的对象的 data-attr 并返回 true/false if 语句 JS

javascript - 在移动设备的容器中点击时在随机位置显示单词

javascript - 如何设置 li 的 using value of clicked li?

javascript - "Content-Disposition", "inline;filename="+ fileName 不强制显示 pdf 文件

php - Facebook 评论插件未发布到 Facebook 个人资料