这里的箭头会突然指向右边

这里的箭头会突然指向右边

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>2-9</title>

    <style type="text/css">

        div {

            font-familyArial;

            font-size72px;

            font-weightbold;

            positionfixed;

            right0;

            left0;

            width30px;

            height30px;

            marginauto;

            transformrotate(90deg);

            animation: movedown 3s linear 5s infinite alternate;

        }

        @keyframes movedown{

            from{ 

                transformtranslate(0,0);

                }

            to{

                transformtranslate(0,100px);

                }

        }

    </style>

</head>

<body>

    <div>&gt;</div>

</body>

</html>


http://img1.sycdn.imooc.com//climg/601b9c8d09b3fffd06730326.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕张 2021-02-04 17:16:25

同学你好,问题解答如下:

1、箭头突然指向右边的原因为:在上面设置了旋转90度,然后下面设置了在3秒后进行平移操作,下面的同名属性(transform)会覆盖了上面(transform),导致rotate属性丢失了,所以箭头旋转效果失效。

http://img1.sycdn.imooc.com//climg/601bbb4209afb30a06200384.jpg

2、建议修改为:在下面加上旋转属性就可以实现效果,上面的可以不设置,如下:

http://img1.sycdn.imooc.com//climg/601bbb59090e4d0e07200628.jpg

祝学习愉快!

  • 提问者 木_人 #1

    好的,谢谢

    2021-02-04 17:23:17
  •  @keyframes movedown {
    from {
    transform:rotate(90deg) translate(0, 0);
    }
    to {

    transform:rotate(90deg) translate(0, 20px);
    }
    }

    为什么这么写无效

    2021-02-25 11:16:27
  • 同学你好,老师测试代码是有效果的,代码中先是设置了旋转,然后再进行的平移,因为箭头旋转后X轴就变成了垂直方向上的,所以箭头是在水平方向移动的,(老师上面给的修改建议是把平移放在了前面,旋转放在后面,先平移后旋转就没有这样的问题)

    所以要想实现垂直方向上的移动就要设置X轴的值,如下图:

    (可以优化一下代码动画的设置,更美观一些,具体如下图)

    http://img1.sycdn.imooc.com//climg/6037651e090b614c06440590.jpg

    祝学习愉快!

    2021-02-25 16:52:10
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师