You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript的Element.animate()中修改animation-timing-function

解决Element.animate()设置动画时序函数的问题

正确设置方法

你之前用的animationTimingFunction是CSS属性名,但在Element.animate()的配置对象中,对应的属性名是easing,直接在animationOptions里添加这个属性就能实现需求:

// 定义动画关键帧
const animationKeyframes = [
    {transform: 'translateY(-100%)'},
    {transform: 'translateY(0%)'}
]

// 配置动画选项,添加easing属性指定时序函数
const animationOptions = {
    duration: 1000,
    iterations: 1,
    easing: 'ease-in-out'
}

// 执行动画(替换成你目标div的选择器)
document.querySelector('.target-div').animate(animationKeyframes, animationOptions)

如果需要给不同关键帧区间设置不同的时序函数,也可以直接在关键帧对象里单独指定:

const animationKeyframes = [
    {transform: 'translateY(-100%)', easing: 'ease-in'},
    {transform: 'translateY(0%)', easing: 'ease-out'}
]

之前尝试无效的原因

  • animationTimingFunction不是Element.animate()配置对象的合法属性,正确的属性名是easing
  • 给元素添加CSS的animation-timing-function不会影响Element.animate()创建的动画,因为这个API生成的是独立的Web Animations实例,不继承元素的CSS动画时序配置

内容的提问来源于stack exchange,提问作者user21068478

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 06:30:37