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

CSS带渐变遮罩的垂直滚动字幕

  •  1
  • paulcook  · 技术社区  · 7 年前

    我试图创建一个垂直滚动字幕在一个完全出血的背景。滚动文本将包含在页面的中心,并且必须在顶部和底部通过渐变不透明度遮罩。

    我可以在顶部或底部应用渐变遮罩,但不能同时应用两者。

    有没有办法只使用CSS/HTML来实现这一点?

    请参见摆弄应用于容器底部的不透明度遮罩-目标是使该遮罩位于容器的顶部和底部。

      .bgimage{
      position: fixed;
      top: 0;
      left: 0;
      width: 100% !important;
      height: 100% !important;
      background-image: url(https://static.pexels.com/photos/880861/pexels-photo-880861.jpeg);
      z-index:-2;
      }
      .container {
      width: 100%;
      height: 10vw;
      margin: 1em auto;
      overflow: hidden;
      position: relative;
      box-sizing: border-box;
      text-align:center;
      -webkit-mask-image: -webkit-gradient(linear, left 20%, left bottom, from(rgba(0,0,0,1)), to(rgba(0,0,0,0)));
      
      }
    
      .marquee {
      top: 6em;
      position: relative;
      box-sizing: border-box;
      animation: marquee 20s linear infinite;
      }
    
    
      /* Make it move! */
      @keyframes marquee {
      0%   { top:   18vw }
      100% { top: -65vw }
      }
    
      /* Make it look pretty */
      .microsoft .marquee {
    	margin: 0;
      padding: 0 1em;
      line-height: 1.5em;
      color: white;
      font: 5vw 'Segoe UI', Tahoma, Helvetica, Sans-Serif;
      }
    <div class="microsoft container">
        <p class="marquee">ONE<br /><br />TWO<br /><br />THREE<br /><br />FOUR<br /><br />FIVE<br /><br />SIX.</p>
    </div>
    <div class="bgimage">
    
    </div>
    1 回复  |  直到 5 年前
        1
  •  5
  •   Temani Afif    5 年前

    只需更新渐变,如下所示:

    .bgimage{
      position: fixed;
      top: 0;
      left: 0;
      width: 100% !important;
      height: 100% !important;
      background-image: url(https://static.pexels.com/photos/880861/pexels-photo-880861.jpeg);
      z-index:-2;
      }
      .container {
      width: 100%;
      height: 10vw;
      margin: 1em auto;
      overflow: hidden;
      position: relative;
      box-sizing: border-box;
      text-align:center;
      -webkit-mask-image:linear-gradient(transparent, rgba(0,0,0,1) 40% 60%,transparent);
              mask-image:linear-gradient(transparent, rgba(0,0,0,1) 40% 60%,transparent);
      
      }
    
      .marquee {
      top: 6em;
      position: relative;
      box-sizing: border-box;
      animation: marquee 20s linear infinite;
      }
    
    
      /* Make it move! */
      @keyframes marquee {
      0%   { top:   18vw }
      100% { top: -65vw }
      }
    
      /* Make it look pretty */
      .microsoft .marquee {
    	margin: 0;
      padding: 0 1em;
      line-height: 1.5em;
      color: white;
      font: 5vw 'Segoe UI', Tahoma, Helvetica, Sans-Serif;
      }
    <div class="microsoft container">
      <p class="marquee">ONE<br><br>TWO<br><br>THREE<br><br>FOUR<br><br>FIVE<br><br>SIX.</p>
    </div>
    <div class="bgimage">
    
    </div>