How SVG Shape Morphing Works | CSS-Tricks

While animating SVG with CSS is easy and comfortable, CSS can't animate all the SVG properties that are possible to animate. For instance, all the properties that define the actual shape of the elements aren't possible to change or animate in CSS. You can animate them through SMIL though. Sara Soueidan covers this in her guide to SMIL here on CSS-Tricks, but I thought I would shine a light on this particular ability. Otherwise, the animation will just fail. The shape won't disappear or anything, but it won't animate. It's not extremely obvious how many points a shape has just by looking at the d (in the case of a path) or points attribute (in the case of a polygon) so you may just need to start in a vector editor program with a single shape and work from there. SMIL has the ability to handle interactions like clicks and hovers, so long as all that happens within the SVG itself. For instance, you could begin the animation when it's clicked on, like: That's pretty neat, but it's a little limiting since you can only handle clicks from other elements right in that same SVG. Perhaps this SVG is just a part of a <,button>, and you want to run the animation on any click on that button. First give the animation an ID so we can find it with JavaScript, and then prevent it from running with: This demo actually has four animations. One to morph the star to a check, one to change the color, and then both those same animations in reverse. Clicking the button checks the state of the button and then runs the appropriate ones. Yup and you can use the same technique for shapes cut out of HTML elements with the polygon function value for clip-path – demo, change $n1 and $n2 in the SCSS to change the number of vertices of the polygons you switch between http://codepen.io/thebabydino/pen/aFrcu (WebKit only at the moment, plus a weird bug manifesting itself when there’s a solid background and I’m also animating transform on the clipped element) I have also used this technique to create the illusion of a “breathing shape”, going from an n-point star to an n-polygon http://codepen.io/thebabydino/pen/Fxrbd (again, WebKit only at the moment, as IE has no support for clipping and masking and Firefox doesn’t support shape function values for clip-path) I like it! Would it be possible to animate first from the star to some intermediate shape and then to the check? As it is it takes me back to some early-90’s tweening. A shape in the middle (and perhaps a little “bouncy” easing? ) — something like a circle or a diamond or something — might provide a more smoother visual. Absolutely! You can add as many keyframes as you need and the browser will figure out the tweens. You can also time the keyframes over the duration, so you can create pauses at certain times. The key is that each shape needs to have the same number of points — or vertices. Creating and aligning those to how you want the shape to animate is the real art to this technique. Or you could use a Flash shape-tween and export an SVG sequence, import that into webframes and export a single SVG file with CSS animations. It’d hit every browser. Ah, so cool. Animations make interfaces feel so much more friendly, and this is a powerful addition to the “typical” animations that designers put on websites. Thanks for the write up, Chris! OMG its quite simple. A few days before when J was reserching about SVG icons I found couple of icons with some great animations, however they were quite difficult but this solution is quite easy. I like it! Would it be possible to animate first from the star to some intermediate shape and then to the check? As it is it takes me back to some early-90’s tweening. A shape in the middle (and perhaps a little “bouncy” easing? ) — something like a circle or a diamond or something — might provide a more smoother visual. The key is that each shape needs to have the same number of points — or vertices. Creating and aligning those to how you want the shape to animate is the real art to this technique. We use and recommend Media Temple web hosting. CSS-Tricks has been on Media Temple hosting since day one and they have helped me tremendously along the way. Use coupon code CSSTRICKS to save 20% for the first year. CSS-Tricks* is created, written by, and maintained by Chris Coyier and a team of swell people. It is built on WordPress, hosted by Media Temple, and the assets are served by MaxCDN. The fonts are Source Sans Pro and Source Code Pro. It is made possible through sponsorships from products and services we like. Source.


Яндекс.Метрика Рейтинг@Mail.ru Free Web Counter
page counter
Last Modified:
Fatal error: Call to undefined function mdv_last_modified() in /home1/wacedu0abjm6/public_html/wp-content/themes/CherryFramework/footer.php on line 121