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

要从顶部覆盖的动画背景色

  •  0
  • WJA  · 技术社区  · 6 年前

    我正在寻找一种方法来覆盖从上到下的背景色。更具体地说,我希望它是从上到下填写。目前我已经设法制作了一个“褪色”的动画。

    这就是我现在所拥有的:

    .page-dark {
      background: #003850;
      background-color: #003850;
      color: white;
      -o-animation: fadeIt 3s linear; 
      animation: fadeIt 3s linear; 
    }
    
    @-o-keyframes fadeIt {
      0%   { background-color: #ff711b; }
      50%  { background-color: #ff711b; }
      100% { background-color: #003850; }
    }
    @keyframes fadeIt {
      0%   { background-color: #ff711b; }
      50%  { background-color: #ff711b; }
      100% { background-color: #003850; }
    }
    
    1 回复  |  直到 6 年前
        1
  •  3
  •   Ori Drori    6 年前

    可以使用创建两种颜色的背景 linear-gradient() . 将背景高度设置为 200% background-size ,并使用隐藏其中一种颜色 background-position . 现在设置背景位置的动画以显示其他颜色:

    .page-dark {
      height: 90vh;
      background: linear-gradient(to bottom, #003850 50%, #ff711b 50%);
      background-size: 100% 200%;
      background-position: 0 100%;
      color: white;
      animation: slideColor 3s linear forwards; 
    }
    
    @keyframes slideColor {
      to { background-position: 0 0 }
    }
    <div class="page-dark"></div>

    背景位置 显示第二个背景(我们使用 线性-梯度()

    .page-dark {
      height: 90vh;
      background: #ff711b linear-gradient(to bottom, #003850 0, #003850 100%) no-repeat;
      background-size: 100% 0;
      color: white;
      animation: slideColor 3s linear forwards; 
    }
    
    @keyframes slideColor {
      to { background-size: 100% 100%; }
    }
    <div class=“页面暗”></部门>