代码之家  ›  专栏  ›  技术社区  ›  Tms91

让div保持在正确的位置,但是让footer把它踢起来

  •  -2
  • Tms91  · 技术社区  · 6 年前

    标题听起来可能很奇怪,但我想用菜单来实现一些目标。

    我嘲笑它 jsfiddle 因为一个例子可以告诉1000多个单词:)

    页面内容(黄色)在标题(红色)下方滚动。左边的菜单(蓝色)应该保持原位。可以通过使用 position: fixed 。但是…

    如果我们进一步滚动,就会看到页脚。如果我们进一步滚动 main (在红色和绿色线之间)变得比蓝色导航元素的高度小。我现在希望蓝色元素被推到红色header元素下面。

    因此,从本质上讲,蓝色元素应该保持其当前位置,但如果红线和绿线之间的高度变小,那么nav元素的高度就应该由页脚向上推。

    我怎么能把蓝盒子粘起来 还让它被绿色脚踩上来吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Flemming Hansen    6 年前

    我想你要找的是十字路口的观察者。 https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API

    但是,请结账: https://caniuse.com/#search=intersectionObserver

    ---但有填充物

    或者一个css向导可以想出更好的解决方案:)

    *编辑 实际上,你可以用一点css…这不是完美的,而是朝着更好的方向迈出的一步

    header {
      position: fixed;
      width: 100%;
      height: 100px;
      top: 0;
      z-index: 2;
    }
    
    nav {
      height: 200px;
      outline: 1px solid blue;
      position: sticky;
      top: 0;
    }
    
    footer {
      height: 300px;
      margin-bottom: 10rem;
    }