滚动期间不平滑的视差效果 - 使用 border-radius 方法

Unsmooth parallax effect during scrolling - with border-radius method

我刚开始学习HTML/CSS。我的目标是在我的测试网站上准备视差效果。我在CSS中构建了一个带有视差效果的代码,但问题是滚动页面时位于容器下方的图像不平滑(图像扩展和撕裂)。

请考虑我使用了 border-radius 方法,该方法将图像所在容器的角变圆。我注意到,当我使用 cut border-radius 方法时,不会出现不平滑的效果。但我的目标是保持此 border-radius 方法不变

我知道我可以在 JS 中构建类似的视差效果,但我的目标是了解视差效果在 CSS 中与 border-radius 方法一起无法正常工作的原因。

我强调的是,只有当浏览器页面变窄时才会出现不需要的效果。请看Codepen one中的效果和代码的区别(浏览器页面显示整理页的部分被缩小):

https://codepen.io/marartgithub/pen/vYpPEjQ

全页第二个(没有出现问题):

https://codepen.io/marartgithub/full/vYpPEjQ

如果问题不是最大的问题并且对你们中的一些人来说可能微不足道,我很抱歉,但我的目标是理解为什么不是我想要的所有东西都能很好地成为更好的程序员。

我会使用 :before 伪标签来实现这种效果。以下是我所做的更改:

  1. 我删除了 about bg div 并将每个框设置为 flexbox,因为这将是实现此布局的更简洁的方式。
  2. 然后,我从 .about-us-box 中删除了 border-radius,并将其添加到 .about-us-box:before。在 :before 样式中,我将其设置为父容器 (.about-us-box) 的大小,然后将其设置为具有边框半径。您将看到 box-shadow 属性,因为 border-radius 不会弯曲内角。 Box-shadow 帮我们处理了。

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: 'Raleway', sans-serif;
}

/* n a v */
.nav {
    height: 50px;
    background-color: #333;
    text-align: center;
    line-height: 50px;
    font-size: 0;   
}

.nav-item {
    display: inline-block;
}

.nav-item a {
    padding: 0 50px;
    color: whitesmoke;
    text-decoration: none;
    text-transform: uppercase;
    font-weight: bold;
    letter-spacing: 2px;
    transition: color 0.3s;
    font-size: 16px;    
}

.nav-item a:hover {
    color: royalblue;
}

/* h e a d e r */
.header-jpg {
    position: relative;
    height: 300px;
    background-image: url('https://cdn.pixabay.com/photo/2016/09/29/13/08/planet-1702788_1280.jpg');
    background-size: cover;
    background-position: 0 50%;
}

.header-text {
    position: absolute;
    color: whitesmoke;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);   
}

.header-bg {
    position: absolute;
    height: 100%;
    width: 100%;    
}

.header-text h1 {
    direction: rtl;
    margin-bottom: 10px;
    text-transform: lowercase;
    letter-spacing: 2px;
    text-shadow: 2px 2px 6px gold;
}

/* m a i n */
main {
    margin: 50px auto;
    width: 1200px;
}

main h2 {
    margin-bottom: 20px;
    text-transform: uppercase;
    text-align: center;
    font-weight: 100;
    font-size: 16px;
}

.about-us-box {
  position: relative;
    height: 300px;
    margin: 40px 0;
    background-size: cover;
    background-attachment: fixed;
    background-position: center center;
  background-repeat: no-repeat;
  display: flex;
  align-items: flex-end;
  z-index: 0;
}

.about-us-box:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 20px 0 20px 0;
  z-inex: 1;
  background-color: transparent;
  border-radius: 20px 0 20px 0;
  box-shadow: 0 0 0 13px #fff;
}

.top {
    background-image: url('https://cdn.pixabay.com/photo/2017/08/06/07/10/coffee-2589761_1280.jpg');
}

.middle {
    background-image: url('https://cdn.pixabay.com/photo/2017/06/10/16/19/iphone-2390121_1280.jpg');
}

.bottom {
    background-image: url('https://cdn.pixabay.com/photo/2015/01/09/11/08/startup-594090_1280.jpg');
}

.about-us-text {
    text-align: center;
    color: whitesmoke;
  padding: 2rem 1rem;
  background-color: black;
}

.about-us-text h3 {
    margin-bottom: 10px;
    text-transform: uppercase;
}

/* f o o t e r */
footer {
    height: 80px;
    line-height: 80px;
    background-color: #333;
    color: #ddd;
    text-align: center;
    font-size: 20px;
}

.icon-box {
    margin-left: 20px;
}

.icon-box a {
    margin: 0 5px;
    color: #ddd;
    text-decoration: none;
    font-size: 20px;
    transition: color 0.3s;
}
.icon-box a:hover {
    color: royalblue;
}

.ti {
    padding-right: 10px;
    font-size: 26px;
    margin-right: 10px;
}

.elem-main {
    width: 300px;
    margin: 0 auto;
}

.prices-table {
    margin: 0 auto;
}

.prices-table td {
    padding: 10px 30px;
}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>TASK - WE LOVE COFFEE</title>
  <link rel="preconnect" href="https://fonts.googleapis.com" />
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
  <link href="https://fonts.googleapis.com/css2?family=Raleway&display=swap" rel="stylesheet" />
  <link rel="stylesheet" href="https://unpkg.com/@tabler/icons@latest/iconfont/tabler-icons.min.css" />
  <link rel="stylesheet" href="./css/style_en.css" />
</head>

<body>
  <header>
    <div class="header-jpg">
      <div class="header-bg"></div>
      <div class="header-text">
        <h1>Creative design</h1>
        <p>With our support you will create a dreamlike website</p>
      </div>
    </div>
  </header>
  <nav class="nav">
    <ul>
      <li class="nav-item"><a href="index.html">home</a></li>
      <li class="nav-item"><a href="services.html">services</a></li>
      <li class="nav-item"><a href="pricing.html">pricing</a></li>
      <li class="nav-item"><a href="contact.html">contact</a></li>
    </ul>
  </nav>
  <main>
    <h2>About us</h2>

    <div class="about-us-box top">
        <div class="about-us-text">
          <h3>We love coffee</h3>
          <p>
            We interested in coffe in our team on years. We love his smell and
            taste. We love the process on which coffee beans goes through
            starting from day of cutting during harvest then heat treatment to
            grinding process in our coffee grinder and passing it through a
            espresso machine.
          </p>
      </div>
    </div>
    <div class="about-us-box middle">
      <div class="about-us-text">
        <h3>We all are creative</h3>
        <p>
          Characteristic of our work requires from us to be continously a
          creative persons, because of competentive market and our clients
          demands which expects from us to provide unconventional solutions
          supported theri business.
        </p>
      </div>
    </div>
    <div class="about-us-box bottom">
      <div class="about-us-text">
        <h3>We like our job</h3>
        <p>
          We are young team of simmilar thingking and creative and full
          positive energy persons. We meets as well outside of our job to
          receive a good balance between proffesionall acvivity and private
          life.
        </p>
      </div>
    </div>
  </main>
  <footer>
    <p>
      &copy; 2022 Creative design
      <span class="icon-box">
        <a href="#"><i class="ti ti-brand-facebook"></i></a>
        <a href="#"><i class="ti ti-brand-twitter"></i></a>
      </span>
    </p>
  </footer>
</body>

</html>