【问题标题】:Jquery: pushing a fixed positioned div down with expanding Div?Jquery:通过扩展 Div 将固定位置的 div 向下推?
【发布时间】:2015-10-20 19:02:02
【问题描述】:

我正在使用 jquery 在我的页面中单击展开隐藏的 div。

我有另一个 div,它是一个固定位置的 div,它是我页面中的标题。

我要做的是扩展 div,然后随着这个可扩展 div 的扩展,将页眉 div 和我页面中的所有其他内容向下推。

我已经尝试过固定 div 的相对位置,但我需要这个 div 始终出现在屏幕上,这就是为什么我给它一个固定位置!

这里是Jsfiddle,看看我的意思。

html结构是这样的:

<div align="center" class="boxs">
<p id="welcome">Welcome</p>
</div>
<div id="bubs" data-role="header" data-tap-toggle="false" data-position="fixed" data-theme='d'>
    <h1 id="reveal" class="header-title">Click Here</h1>
</div>

有人可以就如何实现这一点提出建议吗?

任何帮助将不胜感激。

【问题讨论】:

  • @Paulie_D,是的,这是正确的。但是,不是您这样做的方式,因为随着 div 的扩展,我需要将页面中的其余内容(其他 div、图像等)下推。您的示例与我正在尝试做的非常接近,但是您正在扩展作为固定位置的标题,并且当它扩展时,它会与其他内容重叠,而不是向下推。
  • @Paulie_D,是的,这确实将内容向下推,但现在标题保持不变(我首先遇到的固定位置问题)!正如我之前提到的,我需要具有固定位置的标题以及页面的所有其他内容在扩展 div 扩展时向下移动或被向下推。你的第一个例子更接近我想要做的。

标签: jquery html css


【解决方案1】:

我能得到的最接近的。

正如我所提到的,固定的 div 是 固定的,所以除非你告诉它,否则它不会去任何地方。您可以为顶部位置和边距等设置动画,但我想我只是更喜欢将位置属性从fixed 切换到relative

$('#a-sidebar').click(function() {
  $('#bubs').toggleClass('down');
  $('.boxs').slideUp('slow', function() {
    // Animation complete.

  });
});

$('#reveal').click(function() {
  $('#bubs').toggleClass('down');
  $('.boxs').slideToggle('slow', function() {
    // Animation complete.

  });
});
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.boxs {
  height: 300px;
  background-color: #333;
  padding: 10px;
  display: none;
}
#welcome {
  color: #F8F8F8;
  font-size: 24px;
}
#bubs.down {
  position: relative;
}
main {
  height: 250px;
  background: #f00;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div align="center" class="boxs">
  <p id="welcome">Welcome</p>
</div>
<div id="bubs" data-role="header" data-tap-toggle="false" data-position="fixed" data-theme='d'>
  <h1 id="reveal" class="header-title">Click Here</h1>

</div>
<main></main>

【讨论】:

  • 就是这样。这正是我想要做的。你就是那个人......但我不知道为什么当我在我的 html 页面中运行你的代码并且当我关闭扩展的 div 时,标题会跳起来而不是像你的示例中那样向上滑动!
  • 只要确保你有toggleClass before slding 功能......这很重要。除此之外,您必须在演示中重现您所拥有的内容,以便我们进行诊断。
  • 它只是跳跃而不是平滑地向上/向下滑动!!是因为我包含了 jquery mobile 吗?
  • 实际上,我不这么认为。我认为这是一个边距问题 - 只需重置边距就会使其滑动 - jsfiddle.net/Lpb2gnj6
  • 是的,这是因为 jquery mobile,因为当我不包含 jquery mobile 时,它​​会平滑滑动而不是跳跃,但我需要将 jquery mobile 包含在我的页面中!跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-04
相关资源
最近更新 更多