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

clip-path动画无过渡效果?三角形转八边形无法平滑动画问题

解决clip-path从三角形到八边形的平滑动画问题

问题原因

CSS的clip-path在做动画过渡时,要求两个关键帧中polygon()的顶点数量完全一致。你原来的三角形只有3个顶点,八边形有8个顶点,浏览器无法在不同数量的顶点之间计算平滑过渡路径,所以会直接跳变。

修复方案

把三角形的clip-path补全为8个顶点,通过重复相同顶点模拟三角形形状,让两个关键帧顶点数量一致,浏览器就能正常插值实现平滑动画。

修改后的完整代码:

body {
    background-color: #252525;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
}

.circle {
    width: 30rem;
    height: 5rem;
    background-color: #1c7ed6;
    animation: wave--animate 4s infinite ease-in-out alternate;
}

@keyframes wave--animate {
    0% {
        /* 补全为8个顶点的三角形,重复相同顶点 */
        clip-path: polygon(50% 0%, 50% 0%, 0% 100%, 0% 100%, 100% 100%, 100% 100%, 0% 100%, 50% 0%);
    }

    100% {
        /* 原八边形路径 */
        clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
    }
}
<body>
    <section class="section--water-waves">
        <p class="circle"></p>
    </section>
</body>

原理说明

通过重复三角形的顶点,让两个关键帧的polygon拥有相同数量的顶点,浏览器就能逐个计算每个顶点的位置变化,从而实现从三角形到八边形的平滑变形。你可以根据需求调整重复顶点的位置,优化过渡效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 01:15:30