当 css 位置粘性停止粘贴时

Posted

技术标签:

【中文标题】当 css 位置粘性停止粘贴时【英文标题】:when css position sticky stops sticking 【发布时间】:2018-03-21 04:34:36 【问题描述】:

我想知道为什么position: sticky 适用于某些 x 轴滚动,但是一旦您滚动超过屏幕宽度的初始宽度,您的“粘性 div”就停止了。

在这个例子中,我有一个左侧栏(请注意,我不能使用position: fixedposition: absolute,因为在我的实际项目中,left-div 和 right-div需要沿 y 轴上下滚动,因此我们只需要左侧粘贴)

有没有我可以定义的额外CSS参数,比如

left-sticky-distance=999999%

或者类似的?

一些测试代码说明如下

    <html>


    <body>

    <div style='
    position:sticky;
    z-index:1;
    left:0;
    width:100px;
    height:200px;
    overflow: hidden;
    background-color:#ff0000;
    opacity:0.8;'
    >

    </div>

      <div style='position: absolute; top: 10; left: 10; width: 200; height:50px; background-color: blue'>B</div>
      <div style='position: absolute; top: 10; left: 110; width: 200; height:50px; background-color: blue'>C</div>
      <div style='position: absolute; top: 10; left: 210; width: 200; height:50px; background-color: blue'>D</div>
    </body>
    <html>

【问题讨论】:

你能做一个小提琴之类的吗? 或者堆栈溢出sn-p 【参考方案1】:

这个问题:https://***.com/a/45530506 回答了这个问题。

一旦“sticky div”到达屏幕边缘,它就位于父元素视口的末端。这会导致粘性元素停止并停留在父视口的末尾。此代码笔提供示例:https://codepen.io/anon/pen/JOOBxg

#parent
      width: 1000px;
      height: 1000px;
      background-color: red;

#child
      width: 200px;
      height: 200px;
      background-color: blue;
      position: sticky;
      top: 0px;
      left: 0px;

body  
      width: 3000px;
      height: 3000px;
<html>
  <div id="parent">
    <div id="child">
    </div>
  </div>
</html>

   

【讨论】:

【参考方案2】:

在我将height: auto; 添加到body 的CSS 属性中后,这个自动隐藏问题得到了修复。

body 
    background: #fff;
    color: #444;
    font-family: "Open Sans", sans-serif;
    height: auto;

希望对您有所帮助。 :)

【讨论】:

将它设置为 body 对我来说没有帮助。但是将height:auto 设置为第一页包装器确实如此。此问题与溢出有关:隐藏 |滚动 |汽车 。更多信息uxdesign.cc/position-stuck-96c9f55d9526 也为我工作 这解决了我的问题。但我不知道它是如何解决的。谢谢!【参考方案3】:

我刚刚意识到,因为您没有捕获溢出,所以它会停止粘连。如果您指定了溢出:隐藏;然后检查该轴内的所有内容是否完全适合所有屏幕尺寸,如果不是,则进行必要的调整以使内容适合。当您指定 div 的高度并且内容在特定屏幕尺寸中超出该高度时,也会发生这种情况。

我希望这可以帮助那些犯过我同样错误的人。

【讨论】:

以上是关于当 css 位置粘性停止粘贴时的主要内容,如果未能解决你的问题,请参考以下文章

位置粘性没有正确粘贴[重复]

HTML:使用引导程序添加粘性页脚响应[重复]

如何在WordPress网站上定义元素的粘滞位置

修复屏幕顶部的“粘性”导航栏

粘贴后“插入点”的位置(以编程方式)[关闭]

Android:将手势事件传递给另一个视图