当前位置: 首页 > Web前端 > HTML

使用offset-path实现自定义路径动画

时间:2023-04-03 00:26:19 HTML

在很多情况下,美术师提供的渲染图对于某个点的运动轨迹并不遵循规则的直线。这时候可以使用offset-path来实现点的运动轨迹。比如这张图,需要实现绿点沿着红色曲线的移动。html部分

css部分@keyframesmove{100%{offset-distance:100%;}}.move-box{宽度:80%;高度:1000px;边距:50px自动;边框:1px纯黑色;位置:相对;/*背景图仅用于演示运动轨迹是否正确*/background:url(files/leaf.png)no-repeatlefttop;}.dot{position:absolute;左:38px;顶部:104px;宽度:20px;高度:20px;边界半径:50%;背景:绿色;盒子阴影:0020px绿色;-path:path("M44.500,162.500C44.500,162.50089.756,180.432135.500,145.500C181.244,110.568188.925,108.900199.500,73.500C210.075,38.100204.689,3.134270.500,17.500C336.311,31.866405.804,-10.398429.500,4.500C453.196,19.398510.841,47.341531.500,73.500C552.159,99.659529.723,58.407602.500,31.500C675.277,4.593692.423,6.276704.500,40.500C716.577,74.724710.319,92.353711.500,122.500C712.681,152.647689.619,223.416680.500,260.500C671.381,297.584529.438,204.141559.500,324.500C589.562,444.859503.852,697.103614.500,521.500C725.148,345.897681.020,258.038717.500,319.500C753.980,380.962779.594,527.618702.500,596.500C625.406,665.382412.897,742.971378.500,639.500C344.103,536.029401.155,541.987422.500,415.500C443.845,289.013370.529,186.899485.500,172.500C600.471,158.101688.010,121.886634.500,113.500C580.990,105.114610.507,137.029492.500,112.500C374.493,87.971364.275,43.495312.500,119.500C260.725,195.505225.342,182.297165.500,301.500C105.658,420.703110.850,569.54261.500,548.500C12.150,527.45844.798,372.48112.500,317.500C-19.798,262.51926.643,163.16144.500,162.500Z");animation:move30slinearinfinite;}这里需要注意的是:.dot当前点的left和top值是当前点相对于运动轨迹的最左边和最上面的位置;无论.dot大小如何,它的运动相对位置都是物体的中心点,sothenneedtodo获取居中偏移offset-path的值的方法有很多。考虑到各种ps版本的问题,比较靠谱的方法是:用钢笔工具画出路径,然后“文件-导出-路径到Illustrator”,另存为.ai格式,在illustrator中另存为svg,然后用记事本打开这个svg文件。offset-path的值就是svg中path的值。当然,这可以由艺术家来完成,他们更熟练。