css - 视差背景不覆盖溢出的内容

标签 css parallax

我想基于https://keithclark.co.uk/articles/pure-css-parallax-websites/创建视差效果。

使用该解决方案,背景不会覆盖溢出的内容。
我想在滚动而不是空白时看到背景图像的下部。



.parallax {
  overflow-x: hidden;
  overflow-y: scroll;
  height: 150px;
  perspective: 1px;
}

.parallax__layer {
    position: absolute;
    color:white;
    padding-left: 20px;
    top: 0;
}

.parallax__layer--back {
    background: url('https://www.w3schools.com/w3images/nature.jpg');
    transform: translateZ(-2px) scale(3);
    background-size: cover;
    background-position: top;
    height: 100%;
    /* height: contentHeight */
}

<div class="parallax">
   <div class="parallax__layer--back"></div>
   <div class="parallax__layer">
      <h1>
         Any content <br/><br/>
         that <br/><br/>
         causes <br/><br/>
         overflow <br/><br/>
      </h1>
   </div>
 </div>





是否有完成该规则的规则?

最佳答案

您可能会注意到,这是由于使用了height:100%。另一个想法是将图层用作主要内容的伪元素,然后可以使其适合其高度:



.parallax {
  overflow-x: hidden;
  overflow-y: scroll;
  height: 150px;
  perspective: 1px;
}

.parallax__layer {
    position: absolute;
    color:white;
    padding-left: 20px;
    top: 0;
    left:0;
    right:0;
}

.parallax__layer:before {
    content:"";
    position:absolute;
    left:0;
    top:0;
    right:0;
    background: url('https://www.w3schools.com/w3images/nature.jpg');
    transform: translateZ(-2px) scale(3);
    background-size: cover;
    background-position: top;
    height: 100%;
    z-index:-1;
}

<div class="parallax">
   <div class="parallax__layer">
      <h1>
         Any content <br><br>
         that <br><br>
         causes <br><br>
         overflow <br><br>
      </h1>
   </div>
 </div>

关于css - 视差背景不覆盖溢出的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50440549/

相关文章:

html - 有什么方法可以在每次包裹在 flexbox 后访问第一个元素?

javascript - 如何防止亚洲字符按字断行

javascript - 如何在 HTML 页面上显示原始 JSON 数据

javascript - CSS视差标题和粘性导航相互排斥?

javascript - 使用 jQuery 和 CSS3 的视差窗帘显示效果

javascript - 我可以滚动浏览带有 "height = auto;"的元素吗?

javascript - 如何通过已经具有 "visibility: visible !important;"属性的 css 或 javascript 禁用 html 元素?

javascript - 视差在具体化 css 中不起作用

javascript - 简单视差滚动 - 内容在横幅上滑动

html - Safari 上的视差图像闪烁