Svg animation draw
How do I make an svg animation draw?
What is a svg animation draw? How do you make a svg animation draw? This script and codes were developed by Szymon Dziewoński on 23 December 2022, Friday.
Svg animation draw - Script Codes HTML Codes
<!DOCTYPE html>
<html >
<head> <meta charset="UTF-8"> <title>Svg animation draw</title> <link rel="stylesheet" href="css/style.css">
</head>
<body> <li class="portfolioLogo"> <figure class="drawings mud"> <img class="illustration" src="http://szymondziewonski.com/pictures/work/mud/logo.png" alt="" /> <svg class="line-drawing" id="mud" width="180" height="180" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 180 180"> <g> <path fill="#ffffff" opacity="1.00" d=" M 36.10 46.28 C 46.57 35.60 60.92 28.74 75.86 27.57 C 92.90 25.90 110.46 31.64 123.34 42.91 C 134.75 52.65 142.05 66.60 144.70 81.28 C 148.28 83.60 151.85 85.98 154.82 89.09 C 153.87 98.30 150.64 109.49 141.16 113.20 C 138.81 118.56 133.67 121.96 128.06 123.11 C 129.38 120.72 130.38 118.19 131.21 115.60 C 129.43 115.64 127.55 116.05 125.87 115.30 C 122.22 113.56 121.49 108.64 117.95 106.91 C 114.41 107.07 113.81 111.56 113.79 114.33 C 113.29 114.59 112.80 114.85 112.31 115.12 C 112.75 121.07 113.73 127.22 117.73 131.95 C 115.82 132.61 113.88 133.14 111.95 133.75 C 114.34 133.83 116.63 133.13 118.58 131.75 C 113.55 127.72 116.62 120.52 113.19 115.66 C 113.88 115.34 114.58 115.02 115.28 114.71 C 119.69 119.08 116.46 125.89 120.02 130.63 C 123.05 128.92 124.85 125.88 126.68 123.05 C 127.99 124.70 128.07 126.85 128.44 128.84 C 129.54 127.22 130.64 125.59 131.83 124.03 C 132.27 132.01 125.72 137.53 119.99 141.92 C 99.67 157.87 69.36 159.00 47.64 145.13 C 48.55 138.93 54.14 135.07 59.37 132.56 C 68.84 128.26 79.77 126.61 89.96 129.07 C 91.93 133.27 91.61 138.26 89.00 142.11 C 91.38 142.82 93.76 143.53 96.16 144.18 C 95.50 145.22 94.85 146.26 94.20 147.30 C 101.91 147.88 111.37 147.07 116.26 140.24 C 113.36 140.67 109.83 141.83 107.33 139.64 C 104.69 136.79 104.44 132.36 101.34 129.85 C 97.17 126.16 93.19 120.89 93.83 115.03 C 96.00 110.08 102.57 111.09 106.52 108.50 C 110.88 105.54 116.29 102.86 121.66 104.42 C 125.50 105.88 124.48 112.07 128.94 112.57 C 134.94 111.49 140.62 108.94 145.89 105.92 C 146.10 103.97 146.58 102.03 146.44 100.07 C 143.78 97.52 140.67 95.50 137.73 93.30 C 139.55 91.83 141.95 91.46 144.10 90.68 C 146.08 91.44 148.10 92.58 150.29 91.97 C 147.25 84.93 139.36 81.85 133.05 78.34 C 129.01 79.88 124.94 81.39 120.88 82.88 C 123.60 80.48 126.59 78.40 129.46 76.19 C 127.77 71.42 125.73 66.79 123.80 62.12 C 114.27 57.69 104.72 53.27 95.35 48.52 C 92.57 46.33 91.38 42.68 88.81 40.28 C 81.06 37.66 72.96 36.31 64.96 34.67 C 66.00 38.41 67.38 42.06 68.50 45.78 C 69.87 46.73 71.26 47.64 72.65 48.56 C 72.25 49.25 71.44 50.63 71.04 51.32 C 60.42 45.68 47.88 43.79 36.10 46.28 M 96.24 117.13 C 96.46 123.04 102.02 126.38 105.49 130.44 C 107.31 132.26 107.10 135.34 109.19 136.92 C 110.69 137.79 112.46 138.07 114.11 138.55 C 113.43 136.53 110.72 138.01 109.50 136.44 C 108.14 134.54 108.20 131.95 106.86 130.00 C 104.26 126.15 99.83 123.57 98.31 118.99 C 97.86 117.71 97.57 115.64 99.23 115.11 C 102.17 113.95 105.23 113.02 107.90 111.26 C 104.12 113.33 97.44 111.86 96.24 117.13 Z" /> <path fill="#ffffff" opacity="1.00" d=" M 68.83 39.04 C 73.36 39.72 77.62 41.46 82.05 42.57 C 86.76 43.36 90.08 47.15 92.86 50.73 C 88.93 48.92 85.12 46.87 81.21 45.00 C 81.63 46.06 82.47 48.18 82.89 49.23 C 81.58 51.29 80.13 53.26 78.60 55.15 C 77.52 51.37 76.70 47.48 75.13 43.86 C 73.29 41.95 70.81 40.81 68.83 39.04 Z" /> <path fill="#ffffff" opacity="1.00" d=" M 98.16 63.32 C 100.59 63.15 102.74 64.34 104.88 65.29 C 104.46 66.51 103.68 66.62 102.55 65.63 C 101.05 64.93 99.55 64.21 98.16 63.32 Z" /> <path fill="#ffffff" opacity="1.00" d=" M 105.32 67.30 C 105.62 66.56 105.96 65.86 106.36 65.17 C 112.32 68.30 118.94 69.95 125.18 72.43 C 121.86 74.49 118.32 76.16 114.83 77.93 L 114.67 76.28 C 113.08 76.26 111.49 76.25 109.91 76.24 C 107.34 73.05 104.72 69.91 102.20 66.69 C 104.79 67.53 107.42 68.30 110.10 68.80 C 108.65 67.94 107.01 67.39 105.32 67.30 Z" /> <path fill="#ffffff" opacity="1.00" d=" M 29.00 75.57 C 50.53 70.34 74.22 71.29 94.16 81.60 C 99.22 84.43 104.45 87.30 108.47 91.55 C 107.65 91.85 106.02 92.45 105.20 92.75 C 83.24 76.64 54.49 71.33 27.91 76.30 C 28.18 76.12 28.73 75.75 29.00 75.57 Z" /> <path fill="#ffffff" opacity="1.00" d=" M 53.13 81.38 C 57.16 79.69 61.69 80.36 65.92 80.78 C 78.88 82.63 90.91 88.56 101.66 95.82 C 100.43 96.42 99.19 97.00 97.96 97.59 C 86.81 93.78 74.97 91.00 63.13 92.34 C 56.84 92.90 50.74 94.66 44.78 96.69 C 59.38 88.25 77.96 87.68 93.60 93.61 C 93.08 92.92 92.46 92.27 91.46 92.36 C 79.36 86.91 66.65 81.30 53.13 81.38 Z" /> </g> </svg> </figure> </li> <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script> <script src="js/index.js"></script>
</body>
</html>
Svg animation draw - Script Codes CSS Codes
*{ margin: 0; padding: 0;
}
.portfolioLogo{ width: 180px; height: 180px; list-style-type: none;
}
svg { pointer-events: none;
}
.portfolioLogo{ line-height: none;
}
figure.drawings { margin: 0; padding: 0; position: relative; width: 180px; height: 180px;
}
.illustration { position: absolute; top: 0; left: 0; bottom: 0; right: 0; opacity: 0;
}
.show { opacity: 1;
}
.hide { opacity: 0;
}
.line-drawing,
.illustration { -webkit-transition: opacity 0.5s; transition: opacity 0.5s;
}
.line-drawing path { fill: none;
}
path.line-round { stroke-linecap: butt;
}
.drawings path{ stroke-width: 1;
}
figure.drawings.mud{ background-image: url("http://szymondziewonski.com/pictures/work/mud/logoBg.jpg");
}
figure.mud path{ stroke: #fff;
}
Svg animation draw - Script Codes JS Codes
/** * svganimations.js v1.0.0 * http://www.codrops.com * * the svg path animation is based on http://24ways.org/2013/animating-vectors-with-svg/ by Brian Suda (@briansuda) * * Licensed under the MIT license. * https://www.opensource.org/licenses/mit-license.php * * Copyright 2013, Codrops * http://www.codrops.com */
'use strict'; var docElem = window.document.documentElement; window.requestAnimFrame = function() { return ( window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(/* function */ callback) { window.setTimeout(callback, 1000 / 60); } ); }(); window.cancelAnimFrame = function() { return ( window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || window.msCancelAnimationFrame || function(id) { window.clearTimeout(id); } ); }(); function SVGEl(el) { this.el = el; this.image = this.el.previousElementSibling; this.current_frame = 0; this.total_frames = 120; this.path = new Array(); this.length = new Array(); this.handle = 0; this.init(); } SVGEl.prototype.init = function() { var self = this; [].slice.call(this.el.querySelectorAll('path')).forEach(function(path, i) { self.path[i] = path; var l = self.path[i].getTotalLength(); self.length[i] = l; self.path[i].style.strokeDasharray = l + ' ' + l; self.path[i].style.strokeDashoffset = l; }); }; SVGEl.prototype.render = function() { if (this.rendered) return; this.rendered = true; this.draw(); }; SVGEl.prototype.draw = function() { var self = this, progress = this.current_frame / this.total_frames; if (progress > 1) { window.cancelAnimFrame(this.handle); this.showImage(); } else { this.current_frame++; for (var j = 0, len = this.path.length; j < len; j++) { this.path[j].style.strokeDashoffset = Math.floor(this.length[j] * (1 - progress)); } this.handle = window.requestAnimFrame(function() { self.draw(); }); } }; SVGEl.prototype.showImage = function() { $(this.image).addClass('show'); $("svg").attr("class", "line-drawing hide"); }; function getViewportH() { var client = docElem['clientHeight'], inner = window['innerHeight']; if (client < inner) return inner; else return client; } function scrollY() { return window.pageYOffset || docElem.scrollTop; } // http://stackoverflow.com/a/5598797/989439 function getOffset(el) { var offsetTop = 0, offsetLeft = 0; do { if (!isNaN(el.offsetTop)) { offsetTop += el.offsetTop; } if (!isNaN(el.offsetLeft)) { offsetLeft += el.offsetLeft; } } while (el === el.offsetParent) return { top: offsetTop, left: offsetLeft }; } function inViewport(el, h) { var elH = el.offsetHeight, scrolled = scrollY(), viewed = scrolled + getViewportH(), elTop = getOffset(el).top, elBottom = elTop + elH, // if 0, the element is considered in the viewport as soon as it enters. // if 1, the element is considered in the viewport only when it's fully inside // value in percentage (1 >= h >= 0) h = h || 0; return (elTop + elH * h) <= viewed && (elBottom) >= scrolled; } function init() { var svgs = Array.prototype.slice.call(document.querySelectorAll('.portfolioLogo svg')), svgArr = new Array(), didScroll = false, resizeTimeout; // the svgs already shown... svgs.forEach(function(el, i) { var svg = new SVGEl(el); svgArr[i] = svg; setTimeout(function(el) { return function() { if (inViewport(el.parentNode)) { svg.render(); } }; }(el), 250); }); var scrollHandler = function() { if (!didScroll) { didScroll = true; setTimeout(function() { scrollPage(); }, 60); } }, scrollPage = function() { svgs.forEach(function(el, i) { if (inViewport(el.parentNode, 0.5)) { svgArr[i].render(); } }); didScroll = false; }, resizeHandler = function() { function delayed() { scrollPage(); resizeTimeout = null; } if (resizeTimeout) { clearTimeout(resizeTimeout); } resizeTimeout = setTimeout(delayed, 200); }; window.addEventListener('scroll', scrollHandler, false); window.addEventListener('resize', resizeHandler, false); } init();
Developer | Szymon Dziewoński |
Username | SzymonDziewonski |
Uploaded | December 23, 2022 |
Rating | 3 |
Size | 5,545 Kb |
Views | 6,072 |
Find the perfect freelance services for your business! Fiverr's mission is to change how the world works together. Fiverr connects businesses with freelancers offering digital services in 500+ categories. Find Developer!
Name | Size |
Earth animation | 1,991 Kb |
Vertical-align | 1,646 Kb |
Hover effect | 2,448 Kb |
Social Icons net animation | 2,689 Kb |
Menu with hover slide effect | 2,026 Kb |
Hover button | 2,147 Kb |
Animated logo | 1,994 Kb |
Simple loader | 1,919 Kb |
Random count | 1,930 Kb |
Jasper is the AI Content Generator that helps you and your team break through creative blocks to create amazing, original content 10X faster. Discover all the ways the Jasper AI Content Platform can help streamline your creative workflows. Start For Free!
Name | Username | Size |
LDE old privacy page | Jasonangle | 2,339 Kb |
Website Concept | Sagoza | 3,104 Kb |
Cars going | Netoguimaraes | 1,699 Kb |
Ripples in water | Nobitagit | 2,704 Kb |
A Pen by Jay | Jaycode | 3,784 Kb |
Bubble animation | Ftabor | 6,565 Kb |
BabyStore | Pablo-Ai | 3,807 Kb |
Resizable SASS Icons | Marianarlt | 7,611 Kb |
Replace url via jquery | Serluk | 1,429 Kb |
Perforated foil | 0x04 | 2,617 Kb |
Surf anonymously, prevent hackers from acquiring your IP address, send anonymous email, and encrypt your Internet connection. High speed, ultra secure, and easy to use. Instant setup. Hide Your IP Now!