如何在div之外剪辑动画?

问题描述 投票:0回答:1

我正在学习一些CSS来创建动画,这是我的代码到目前为止:

https://jsfiddle.net/1u678gcy/

由于我不能根据StackExchange发布jsfiddle链接而不包含代码,这里是我的HTML:

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body style="background-color:#111111">
    <img src="https://www.benngrant.com/html5/shape1.svg" />
    <br>
    <br>
    <br>
    <div id="mydiv">
      <br><br><br>
      <a id="swipe1";><img src="https://www.benngrant.com/html5/shape1.svg" />
      </a>
      <br><br><br><br>
    </div>
  </body>
</html>

......这是我的CSS:

a#swipe1 {transition-timing-function: linear; position: absolute; animation: mymove 1s forwards;}
@keyframes mymove{from {left:0%; top:100px; opacity:1;} to {left:60%; top:100px; opacity:0; }}
#mydiv {text-align:center; background:blue; max-width:50%; margin-left:auto; margin-right:auto; display:block}

加载时,第一个图像是我正在动画的SVG图形的静态图像。

然后我有一个蓝色的盒子,这是我的div。

然后我在div中嵌套了一个从左到右动画的相同图像的副本,每次页面加载时都会运行动画。

问题是我希望div的左右边框“剪辑”动画,所以我们看到图像从左边进入蓝框,缩放,然后在右边退出 - 但我们永远不应该看到图像在蓝框的外面,即使它是。

不透明度不会是修复,因为当图像是div框的一半时,我想看到框中的一半,但不是那个没有的一半。

基本上我想在左右剪辑动画,所以我们可以看到图像进入,然后离开。

有没有办法使用HTML和CSS实现这一点,而不使用我一无所知的Javascript?

html css animation
1个回答
1
投票

首先,您需要将div指定为相对位置,这样您就可以控制其中的项目。这是一些例子:

<!DOCTYPE html>
<html>
    <head>
        <style>
            .swipe1 {transition-timing-function: linear; position: absolute; animation: mymove 1s forwards;}
            @keyframes mymove{from {left:0%; opacity:1;} to {left:60%; opacity:0; }}
            #mydiv {text-align:center; background:blue; max-width:50%; overflow: hidden; position: relative; margin-left:auto; margin-right:auto; display:block}
        </style>
    </head>
    <body style="background-color:#111111">
            <img src="https://www.benngrant.com/html5/shape1.svg" />
        <br>
        <br>
        <br>
        <div id="mydiv">
            <br><br><br>
            <img class="swipe1" src="https://www.benngrant.com/html5/shape1.svg" />
            <br><br><br><br>
        </div>
    </body>
</html>
© www.soinside.com 2019 - 2024. All rights reserved.