【问题标题】:Opacity transition not working with two fixed position elements不透明度过渡不适用于两个固定位置元素
【发布时间】:2018-02-15 10:52:11
【问题描述】:

在我的网站中,我有一个 YouTube 风格的进度条(固定在屏幕顶部的细线,从左到右加载)和所有内容的标题。这两个元素都有position: fixed

页面加载完成后,进度条会变为opacity: 0。进度条有transition: opacity 0.4s,但它没有过渡,只是出现和消失。这是我的问题。

这是一个问题示例:https://codepen.io/anon/pen/ZJNaqJ

理想情况下,任何解决方案都将涉及更改.loader-outer.loader...而不是#loader-wrapper 中的CSS。这是因为我正在拉入一个外部进度条组件(我正在使用 React),如果不需要,我宁愿不重新实现它。

谢谢!

【问题讨论】:

    标签: css css-position z-index transition opacity


    【解决方案1】:

    您可以改用 css3 动画。如果要在特定事件触发动画,请添加样式类名称并在那里设置动画属性。然后去掉样式类名即可停止动画。

    .wrapper {
      width: 800px;
      height: 400px;
      background-color: lightblue;
    }
    
    .header {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      background-color: palevioletred;
      z-index: 1;
      height: 50px;
    }
    
    .loader-outer {
    }
    
    .loader-wrapper {
    }
    
    .loader {
      background-color: lightpink;
      height: 10px;
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 100;
      animation-name:opacityAnimation;
      animation-iteration-count: infinite;
      animation-duration:2s;
    }
    
    @keyframes opacityAnimation {
      0% {opacity:0;}
      50% {opacity:1;}
      100% {opacity:0;}
    }
    
    .content {
      background-color: lightgreen;
    }
    <div class="wrapper">
      <div>
        <div class="header">
          header stuff here
        </div>
    
        <div class="content">
          body!
        </div>
      </div>
    
      <div class="loader-outer">
        <div id="loader-wrapper">
          <div class="loader"></div>
        </div>
      </div>
    </div>

    【讨论】:

      猜你喜欢
      • 2014-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-23
      • 2020-07-31
      • 2018-04-25
      相关资源
      最近更新 更多