如何使用Element.animate()方法为元素的z-index属性添加动画?
解决z-index动画不生效的问题
在Web Animations API里,CSS属性名必须使用驼峰命名法,z-index对应的正确写法是**zIndex**——你之前用的z-index(带连字符)和zindex(缺少大写I)都是错误的,这就是动画不生效的核心原因。
修正后的代码如下:
myElement.animate({ opacity: [0.1, 1.0, 0.1, 0], background: ["red", "green", "red"], zIndex: [0, 128, 0] // 替换为驼峰式的zIndex }, { fill: 'forwards', timeline: new ViewTimeline({ subject: animationTrigger }), rangeStart: {rangeName: 'entry', offset: CSS.percent(4)}, rangeEnd: {rangeName: 'exit', offset: CSS.percent(64)}, });
额外补充两个关键注意点:
- 目标元素的
position属性不能是默认的static,必须设置为relative、absolute或fixed,否则z-index本身就不生效,自然无法产生动画效果。 z-index是整数类型属性,现代主流浏览器都支持它的数值插值动画,修正属性名后即可正常运行。
内容的提问来源于stack exchange,提问作者igor-so
相关产品推荐
相关产品推荐

