8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

动画有问题,跳过了一半

Tajinder 1月前

46 0

我在一个简单的动画中遇到了一个奇怪的问题:四个/三个元素应该从容器的中心移动到角落: ...

我在一个简单的动画中遇到了一个奇怪的问题:四个/三个元素应该从容器的中心移动到角落:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Test Animation</title>
    <style>
        body {
            margin: 0px;
        }

        .container {
            width: 100%;
            height: 800px;
            background-color: grey;
            position: relative;
        }

        .div1 {
            width: 100px;
            height: 100px;
            background-color: cornflowerblue;
            position: absolute;
            animation: right-bottom 1s;
            animation-fill-mode: forwards;
        }

        .div2 {
            width: 100px;
            height: 100px;
            background-color: cornflowerblue;
            position: absolute;
            animation: right-top 1s;
            animation-fill-mode: forwards;
        }

        .div3 {
            width: 100px;
            height: 100px;
            background-color: cornflowerblue;
            position: absolute;
            animation: left-top 1s;
            animation-fill-mode: forwards;
        }

        .div4 {
            width: 100px;
            height: 100px;
            background-color: cornflowerblue;
            position: absolute;
            animation: left-bottom 1s;
            animation-fill-mode: forwards;
        }

        @keyframes right-top {
            from {
                right: 50%;
                top: 50%;
            }

            to {
                right: 0;
                top: 0%;
            }
        }

        @keyframes right-bottom {
            from {
                right: 50%;
                bottom: 50%;
            }

            to {
                right: 0%;
                bottom: 0%;
            }
        }

        @keyframes left-top {
            from {
                top: 50%;
                left: 50%;
            }

            to {
                top: 0%;
                left: 0%;
            }
        }

        @keyframes left-bottom {
            from {
                left: 50%;
                bottom: 50%;
            }

            to {
                left: 0%;
                bottom: 0%;
            }
        }
    </style>
</head>

<body>
    <div class="container">
        <div class="div1">remove this</div>
        <div class="div2"></div>
        <div class="div3"></div>
        <div class="div4"></div>
    </div>
</body>

</html>

当所有子 div 都存在时,动画效果很好。但是,当我删除内容为“删除此 div”的 div.div1 时,其余 div 会跳过第一部分,直接移动到角落。我很无助,不知道这种行为的原因是什么。

我期望动画以相同的方式工作,与 div 的数量无关。我尝试在 load 事件或 DOMDocumentReady 上启动动画,但没有成功。当我添加延迟时,动画再次正常工作:

        .container div {
            animation-delay: 1000ms;
        }

但是延迟并不受欢迎。当我将持续时间增加到 10 秒时,动画再次正常工作。更新:对我来说,此问题发生在 Windows 10、Opera、Chrome、Edge 上。

帖子版权声明 1、本帖标题:动画有问题,跳过了一半
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Tajinder在本站《css》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我使用在线 html 编辑器运行了您的代码,即使没有 div1 也能正常工作。您还可以对 div1 使用 \'display: none;\' 样式。

返回
作者最近主题: