javascript - 相对于视口(viewport)定位的固定元素(左)和静态元素(右)

标签 javascript jquery css

这可能是不可能的,但我必须尝试: 让我们想象一个固定在视口(viewport)上的元素。

Position: fixed;  
Top: 30px;
Left: 0px;

但是相对于页面(容器)上某个元素的右侧具有 position: static 并且该元素不 float 在固定元素内。它位于页面外部、独立、静态的位置: enter image description here

我知道,如果我设置固定元素的正确位置,通常会相对于视口(viewport)的右侧进行设置。

因此,在这种情况下,调整浏览器大小时,固定元素的右侧将不会相对于视口(viewport)的右侧,而是相对于容器的右侧。

也许是一些 JavaScript? jQuery?

最佳答案

如果您事先知道“容器”的右边缘所在的位置(基于其宽度/左偏移量),您可以使用 CSS3 calc() function 在大多数现代浏览器中实现所需的布局。 。在伪代码中,right 的公式如下所示:

right: calc(100% - container_width - container_left_offset);

这是代码的工作演示:

body,
html {
  margin: 0;
}
#fixed {
  background: #CCC;
  height: 30px;
  left: 0;
  position: fixed;
  right: calc(100% - 100px - 300px);
  top: 30px;
}
#static {
  background: #999;
  height: 800px;
  margin-left: 300px;
  width: 100px;
}
<div id="fixed">
  Fixed
</div>
<div id="static">
  Container
</div>

但是,如果无法事先知道容器的右边缘位置(例如动态宽度/可变内容),您可能必须采用 JavaScript 路线。希望这可以帮助!如果您有任何疑问,请告诉我。

关于javascript - 相对于视口(viewport)定位的固定元素(左)和静态元素(右),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37353125/

相关文章:

javascript - iframe 在博客博客中不起作用

javascript - 为什么当我尝试在 JavaScript 中解析 JSON 时出现错误

javascript - 添加 PlusMinus 到 Accordion 菜单

jquery - 如何获取具有特定 id 的 <div> 中的所有 <li> 元素?

javascript - 如何让基于数组的动画 div 一次出现一个,可能只使用 CSS3?

javascript - angularjs 和 $http 请求

javascript - 字符串化对象时如何防止数字字符串化?

jquery - DataTables draw() 方法不起作用

jquery - 使用jquery添加表记录

jquery - 删除按钮的悬停/单击状态