Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么动画类型不变?动漫_Javascript_Object_Animation_Anime.js - Fatal编程技术网

Javascript 为什么动画类型不变?动漫

Javascript 为什么动画类型不变?动漫,javascript,object,animation,anime.js,Javascript,Object,Animation,Anime.js,我有一个动画对象: anime({ targets: animAttrId, translateY:{ value: [-500,0], duration: 900, easing: 'easeInOutSine' } }); 无论我把哪一个动画放进放松键,

我有一个动画对象:

anime({
                targets: animAttrId,
                translateY:{
                    value: [-500,0],
                    duration: 900,
                    easing: 'easeInOutSine'
                }
            });
无论我把哪一个动画放进放松键,它总是以恒定的速度移动。。。我也尝试了它,没有将translateY作为对象并擦除值,但动画也没有改变。。。??我做错了什么


感谢您的帮助

我已经测试了您的代码,更改代码效果很好。您的变量是否选择了正确的元素?以下是我的html代码示例:

<div class="target-element"></div>

<style>
    .target-element {
        position: absolute;
        width: 200px;
        height: 200px;
        left: 0%;
        top: calc(50% - 100px);
        background-color: purple;
    }
</style>

<script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.0/anime.min.js"></script>

<script>
    var animAttrId = document.querySelector('.target-element');
    anime({
        targets: animAttrId,
        translateY: {
            value: [-500, 0],
            duration: 900,
            easing: 'easeOutBack'
        }
    });
</script>

.目标要素{
位置:绝对位置;
宽度:200px;
高度:200px;
左:0%;
顶部:calc(50%-100px);
背景颜色:紫色;
}
var animAttrId=document.querySelector('.target元素');
动画({
目标:animAttrId,
translateY:{
值:[-500,0],
持续时间:900,
放松:“轻松内地”
}
});

大多数动画可以通过CSS完成,不需要JS库。下面是一个简单的反弹动画

    <div class="target-element"></div>

<style>
    .target-element {
        position: absolute;
        width: 200px;
        height: 200px;
        left: calc(50% - 100px);
        top: calc(50% - 100px);
        background-color: purple;
        animation: myAnimation .5s cubic-bezier(0.83, 1.69, 0.54, 0.8) forwards;
    }

    @keyframes myAnimation {
        0% {
            transform: translateY(0%);
        }

        100% {
            transform: translateY(100%);
        }
    }
</style>

.目标要素{
位置:绝对位置;
宽度:200px;
高度:200px;
左:计算(50%-100px);
顶部:calc(50%-100px);
背景颜色:紫色;
动画:myAnimation.5s立方贝塞尔(0.83,1.69,0.54,0.8)向前;
}
@关键帧myAnimation{
0% {
转化:translateY(0%);
}
100% {
转化:translateY(100%);
}
}
您可以直接在chrome开发工具中使用三次bezier曲线:


真奇怪!如果我改变了宽松,它不会改变吗?但是物体仍然在移动。。它只是以恒定的速度移动。因此,选择确实很有效,可能还有其他一些CSS-order-JS会影响动画。如果你设定一个不同的目标元素会发生什么?这很奇怪,因为如果我只是设定了不放松,那么标准的先快速然后后退总是开始的。我真正搜索的是一个动画,看起来它会从地面上弹起来。你可能可以用纯CSS创建动画。我在答案中加了一个例子。