【问题标题】:Fade out circle layer from center jQuery/GSOP从中心 jQuery/GSOP 淡出圆形层
【发布时间】:2017-07-23 03:29:27
【问题描述】:

我创建了两层 div,一层带有背景图像,另一层带有淡出的黑色层,似乎还可以,但要求有点不同,淡出层应该从中心(圆圈)开始,按照下面的例子:

这是我创建的,JSfiddle Demo

任何人都可以建议如何实现圆形居中淡出,而不是我创建的那个吗?我在我的项目中使用了 greensock。

请推荐

$(document).ready(function() {
  var videoFade = $(".fade-layer");
  TweenMax.to(videoFade, 14, { x:0 , opacity:0 , ease:Power1.easeInOut ,repeat:-1  });
});
.layer-one{
  background:url(https://i.imgsafe.org/90203acca5.jpg); 
  background-size:cover; 
  background-position:center; 
  position:absolute; 
  left:0; 
  top:0; 
  width:100%; 
  height:100%; 
  z-index:1;
}
.fade-layer{
  background:rgba(0,0,0,1); 
  position:absolute; 
  left:0; 
  top:0; 
  width:100%; 
  height:100%; 
  z-index:2;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.19.1/TweenMax.min.js"></script>
<div class="layer-one"></div>
<div class="fade-layer"></div>

【问题讨论】:

    标签: javascript jquery html css gsap


    【解决方案1】:

    我并没有真正使用过GASP,但我能够创建一个快速演示,您可以使用box-shadow 来做这些事情。你可以用它来实现你想要做的事情。检查这个小提琴:https://jsfiddle.net/1uzj2v5L/4/

    $(document).ready(function() {
    var videoFade = $(".fade-layer");
        TweenMax.to(videoFade, 5, { x:0 , opacity:0.5 , ease:Power1.easeInOut ,repeat:-1,
        boxShadow:"0px 0px 0px 0px rgb(0,0,0) inset;"});
    
      });
    

    【讨论】:

    • 非常好的尝试和很好的建议,我认为你添加 box-shadow 的方式,border-radius 也可以用来让它变得更好。我现在试试看效果如何。
    • 我尝试过使用border-radius,但不幸的是没有运气,我想我必须找到一种不同的方法。
    【解决方案2】:

    似乎您可以使用单个元素作为背景,使用伪元素作为黑色叠加层,使用 radial-gradient() 创建叠加层圆圈,并使用 CSS 动画淡化叠加层。

    这是一个演示。

    div, div:after {
      position: absolute;
      top: 0; left: 0; right: 0; bottom: 0;
    }
    div {
      background: url(https://i.imgsafe.org/90203acca5.jpg);
      background-size: cover;
      background-position: center;
    }
    div:after {
      content: '';
      background: radial-gradient(ellipse at center, rgba(0,0,0,0.8) 0%, black 100%);
      animation: fadeOut 10s forwards;
    }
    @keyframes fadeOut {
      to {
        opacity: 0;
      }
    }
    &lt;div&gt;&lt;/div&gt;

    【讨论】:

    • 非常接近我想要的,我从没想过使用 CSS 处理,但好主意,谢谢!
    • @SanjeevK 不客气。你想告诉我什么是行不通的,我可以试着帮忙,还是你不想走这条路?从阅读您的帖子来看,这似乎可行,所以我很想知道您为什么说它很接近但不起作用。
    • 我宁愿按照您在答案中建议的方式进行,只是想知道它是否可以更平滑(居中发光效果),但是到目前为止我对答案感到满意:)
    • @SanjeevK 很酷,感谢您给我反馈。哦,感谢您接受答案!什么是“中心流动效应”——你能把我链接到一个例子或描述吗?
    • 是的,我一直在玩径向渐变,我想现在我可以按照我的要求实现,非常感谢您对此的关注并感谢分享链接:)
    猜你喜欢
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多