Исчезать изображение радиально от середины до краев с TweenLite

У меня есть изображение, см. Ниже: образ

что я хотел бы разместить абсолют на моей странице с помощью следующего CSS:

.bg-slide21-layer-3 {
    background-image: url('/images/slide21/bg_layer3.png');
    -webkit-background-size: 100% 100%;
    -moz-background-size: 100% 100%;
    -o-background-size: 100% 100%;
    background-size: 100% 100%;
    background-repeat: none;
    height: 46vh;
    width: 78.5vw;
    z-index: -8;
    position: absolute;
    top: 0vw;
    right: 0;
    left: -0.5vw;
    opacity: 1;
 }

Я хотел бы использовать Tween, чтобы он начинался с непрозрачности 0, и анимировал себя на странице изнутри (где точки) к краям. Я не знаю, как это сделать. Я не могу найти легкость в том, что работает радиально.

Интуитивно я попытался добавить обложку для элемента, чтобы HTML-код был следующим:

<div class='bg-slide21-layer-3-cover'>
    <div class='bg-slide21-layer-3'></div>
</div>

с обложкой CSS следующим образом:

.bg-slide21-layer-3-cover {
    width: 10%;
    height: 10%;
    margin: auto;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    position: absolute;
    overflow: hidden;
    z-index: -5;
    opacity: 1;
}

и использовать этот вид Tween:

TweenMax.to(
        $('.bg-slide21-layer-3-cover'), 
        2, 
        { opacity: 1, width: "100vw", height: "100vh", ease:Power1.easeNone }
    );

с намерением сделать маленький div в середине расширить наружу. Тем не менее, это не работает, потому что мое внутреннее изображение (.bg-slide21-layer-3) абсолютно расположено по отношению к div обложки в середине, так что эффект выглядит как его исчезновение из левого нижнего угла.

Кто-нибудь знает, как правильно это сделать? Как бы я расположил внутренний элемент div относительно тела, а не элемент div, чтобы при увеличении размера обложки изображение выглядело так, как будто изображение постепенно исчезает из середины?

Благодарю.

1 ответ

Вы можете использовать круглую коробку и изменить ее масштаб

div {
  position:relative;
  background-repeat: none;
  height: 46vh;
  width: 78.5vh;
  overflow:hidden;
  border:solid;
}
div:before {
  position:absolute;
  content:'';
  display:block;
  height:25%;
  width:15%;
  top:70%;
  left:57%;
 background-image: url(https://stackru.com/images/79fac28f32e9ab87176a240997a0366a6a8dc44a.png);
  background-size: 650% 400%;
  background-position: 67% 93%;
  transition:1s linear;
  border-radius:100%;
  
}
div:hover:before {
  background-size:100% 100%;
  height:100%;
  width:100%;
  top:0;
  left:0
}
body {background:linear-gradient(to top left, lightgray, white,gray);
<div>
</div>

Другие вопросы по тегам