简体   繁体   English

如何堆叠和设置2条SVG路径的动画?

[英]How to stack and animate 2 svg paths?

I'd like to animate my logo by filling circle with water and moving my logo inside the circle. 我想通过用水填充圆圈并将徽标移动到圆圈中来对徽标进行动画处理。 I have 2 separate svg paths. 我有2条独立的svg路径。 One of water and second of my logo. 水之一,第二个我的徽标。 When I try to animate them by putting in div #banner I get both animated but logo is 'out of view'. 当我尝试通过放置div #banner来为它们设置动画时,我都获得了动画效果,但徽标“不可见”。 I tried adding z index but it didn't help. 我尝试添加z索引,但没有帮助。 Here's my code: 这是我的代码:

  .logo{z-index:1000; position: relative;} #banner { border-radius: 50%; width: 150px; height: 150px; background: #b7c6ce; overflow: hidden; backface-visibility: hidden; transform: translate3d(0, 0, 0); } #banner .fill { animation-name: fillAction; animation-iteration-count: 1; animation-timing-function: cubic-bezier(.2, .6, .8, .4); animation-duration: 4s; animation-fill-mode: forwards; } #banner #waveShape { animation-name: waveAction; animation-iteration-count: infinite; animation-timing-function: linear; animation-duration: 0.5s; width:300px; height: 150px; fill: #04ACFF; z-index:-1; } @keyframes fillAction { 0% { transform: translate(0, 150px); } 100% { transform: translate(0, -5px); } } @keyframes waveAction { 0% { transform: translate(-150px, 0); } 100% { transform: translate(0, 0); } } 
  <div id="banner"> <div class="fill"> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="300px" height="300px" viewBox="0 0 300 300" enable-background="new 0 0 300 300" xml:space="preserve"> <path fill="none" class="logo" viewBox="0 0 150 150" style="width:150px;height:150px;" stroke="#047F63" stroke-miterlimit="10" d="M200.922,388.703c-6.49,3.878-13.178,6.828-20.265,9.046 c-11.806,3.683-22.87,5.527-33.191,5.527c-17.342,0-33.564-3.592-48.683-10.784c-15.128-7.188-28.309-16.69-39.554-28.488 c-11.254-11.812-20.103-25.363-26.556-40.662c-6.452-15.31-9.678-31.074-9.678-47.296c0-18.813,3.128-35.877,9.403-51.173 c6.267-15.31,15.122-28.49,26.557-39.551c11.427-11.065,24.98-19.558,40.658-25.451c15.673-5.898,32.727-8.85,51.174-8.85 c18.435,0,33.465,2.858,45.082,8.572c11.617,5.715,20.832,12.353,27.664,19.918c6.816,7.552,11.798,15.113,14.931,22.684 c0.735,1.773,1.318,3.098,1.942,4.68l0.313,0.078c6.515-3.902,12.951-6.769,20.064-8.994c11.809-3.684,22.875-5.534,33.194-5.534 c17.343,0,33.566,3.596,48.681,10.788c15.127,7.196,28.308,16.695,39.559,28.491c11.251,11.806,20.104,25.36,26.555,40.66 c6.454,15.31,9.678,31.073,9.678,47.298c0,18.811-3.129,35.874-9.402,51.17c-6.268,15.309-15.119,28.489-26.559,39.555 c-11.424,11.065-24.974,19.553-40.658,25.449c-15.67,5.896-32.724,8.848-51.172,8.848c-18.436,0-33.469-2.861-45.084-8.572 c-11.617-5.711-20.832-12.351-27.663-19.914c-6.816-7.561-11.798-15.12-14.932-22.683 C402.155,391.527,400.922,388.703,400.922,388.7V300H300z"/> <path fill="#04ACFF" id="waveShape" d="M300,300V2.5c0,0-0.6-0.1-1.1-0.1c0,0-25.5-2.3-40.5-2.4c-15,0-40.6,2.4-40.6,2.4 c-12.3,1.1-30.3,1.8-31.9,1.9c-2-0.1-19.7-0.8-32-1.9c0,0-25.8-2.3-40.8-2.4c-15,0-40.8,2.4-40.8,2.4c-12.3,1.1-30.4,1.8-32,1.9 c-2-0.1-20-0.8-32.2-1.9c0,0-3.1-0.3-8.1-0.7V300H300z"/> </svg> </div> </div> 

I took code from [ https://stackoverflow.com/questions/29738787/filling-water-animation/29740828# = ][1] 我从[ https://stackoverflow.com/questions/29738787/filling-water-animation/29740828# = ] [1]中获取了代码

[1]: http://wateranimation tried to edit but no luck so far. [1]: http:// wateranimation尝试进行编辑,但到目前为止还没有运气。 Many thanks in advance for help, Neko 十分感谢Neko的帮助

You have two problems: 您有两个问题:

  1. The logo is first in the SVG file, so it is hidden behind the blue water. 徽标在SVG文件中位于第一个位置,因此它隐藏在蓝色的水后面。 You need to move it so it is after the water path. 您需要移动它,使其在水路之后。

  2. The logo is too large relative to everything else, so you need to scale and move it a bit so it is in the right place and is the right size. 徽标相对于其他所有徽标都太大,因此您需要对其进行缩放和移动一点,以使其位于正确的位置且尺寸正确。 To do that, I added a transform to the logo path: 为此,我向徽标路径添加了一个转换:

     transform="scale(0.3,0.3) translate(30,-30)" 

With those changes, you get a better result. 通过这些更改,您可以获得更好的结果。

 .logo{z-index:1000; position: relative;} #banner { border-radius: 50%; width: 150px; height: 150px; background: #b7c6ce; overflow: hidden; backface-visibility: hidden; transform: translate3d(0, 0, 0); } #banner .fill { animation-name: fillAction; animation-iteration-count: 1; animation-timing-function: cubic-bezier(.2, .6, .8, .4); animation-duration: 4s; animation-fill-mode: forwards; } #banner #waveShape { animation-name: waveAction; animation-iteration-count: infinite; animation-timing-function: linear; animation-duration: 0.5s; width:300px; height: 150px; fill: #04ACFF; z-index:-1; } @keyframes fillAction { 0% { transform: translate(0, 150px); } 100% { transform: translate(0, -5px); } } @keyframes waveAction { 0% { transform: translate(-150px, 0); } 100% { transform: translate(0, 0); } } 
 <div id="banner"> <div class="fill"> <svg width="300px" height="300px" viewBox="0 0 300 300" overflow="visible"> <path fill="#04ACFF" id="waveShape" d="M300,300V2.5c0,0-0.6-0.1-1.1-0.1c0,0-25.5-2.3-40.5-2.4c-15,0-40.6,2.4-40.6,2.4 c-12.3,1.1-30.3,1.8-31.9,1.9c-2-0.1-19.7-0.8-32-1.9c0,0-25.8-2.3-40.8-2.4c-15,0-40.8,2.4-40.8,2.4c-12.3,1.1-30.4,1.8-32,1.9 c-2-0.1-20-0.8-32.2-1.9c0,0-3.1-0.3-8.1-0.7V300H300z"/> <path transform="scale(0.3,0.3) translate(30,-30)" fill="none" class="logo" stroke="#047F63" stroke-miterlimit="10" d="M200.922,388.703c-6.49,3.878-13.178,6.828-20.265,9.046 c-11.806,3.683-22.87,5.527-33.191,5.527c-17.342,0-33.564-3.592-48.683-10.784c-15.128-7.188-28.309-16.69-39.554-28.488 c-11.254-11.812-20.103-25.363-26.556-40.662c-6.452-15.31-9.678-31.074-9.678-47.296c0-18.813,3.128-35.877,9.403-51.173 c6.267-15.31,15.122-28.49,26.557-39.551c11.427-11.065,24.98-19.558,40.658-25.451c15.673-5.898,32.727-8.85,51.174-8.85 c18.435,0,33.465,2.858,45.082,8.572c11.617,5.715,20.832,12.353,27.664,19.918c6.816,7.552,11.798,15.113,14.931,22.684 c0.735,1.773,1.318,3.098,1.942,4.68l0.313,0.078c6.515-3.902,12.951-6.769,20.064-8.994c11.809-3.684,22.875-5.534,33.194-5.534 c17.343,0,33.566,3.596,48.681,10.788c15.127,7.196,28.308,16.695,39.559,28.491c11.251,11.806,20.104,25.36,26.555,40.66 c6.454,15.31,9.678,31.073,9.678,47.298c0,18.811-3.129,35.874-9.402,51.17c-6.268,15.309-15.119,28.489-26.559,39.555 c-11.424,11.065-24.974,19.553-40.658,25.449c-15.67,5.896-32.724,8.848-51.172,8.848c-18.436,0-33.469-2.861-45.084-8.572 c-11.617-5.711-20.832-12.351-27.663-19.914c-6.816-7.561-11.798-15.12-14.932-22.683 C402.155,391.527,400.922,388.703,400.922,388.7V300H300z"/> </svg> </div> </div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM