cssAudio - Activefile-genericCSS - ActiveGeneric - ActiveHTML - ActiveImage - ActiveJS - ActiveSVG - ActiveText - Activefile-genericVideo - ActiveLovehtmlicon-new-collectionicon-personicon-teamlog-outoctocatpop-outspinnerstartv

Pen Settings

CSS Base

Vendor Prefixing

Add External CSS

These stylesheets will be added in this order and before the code you write in the CSS editor. You can also add another Pen here, and it will pull the CSS from it. Try typing "font" or "ribbon" below.

Quick-add: + add another resource

Add External JavaScript

These scripts will run in this order and before the code in the JavaScript editor. You can also link to another Pen here, and it will run the JavaScript from it. Also try typing the name of any popular library.

Quick-add: + add another resource

Code Indentation

     

Save Automatically?

If active, Pens will autosave every 30 seconds after being saved once.

Auto-Updating Preview

If enabled, the preview panel updates automatically as you code. If disabled, use the "Run" button to update.

            
              <div class="wrapper">
<div class="animated-plane" id="js-animated-plane">
	<svg version="1.1" id="plane" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
		 width="38px" height="34px" viewBox="0 0 38 34" enable-background="new 0 0 38 34" xml:space="preserve">
	<path fill="#67C6DA" d="M36.5,15.9c-0.4-0.4-1-0.7-1.6-0.8L31.1,15l-6.3-0.3L14.6,0.4l-3.3-0.2l3.8,13.9l-8-0.4L2.6,8.1L0.9,8
		l0.1,0.6l-0.3,0l1.7,6.9l0.2,1.2l-0.3,1.1L0,24.6l0.3,0l-0.2,0.6l1.7,0.1L6.9,20l8,0.3L9.8,33.9l3.3,0.1l11.4-13.4l6.3,0.3l3.7,0.2
		c0.7,0,1.2-0.2,1.7-0.6c0.6-0.5,1.1-1.3,1.1-2.1c0,0,0-0.1,0-0.1c0,0,0-0.1,0-0.1C37.4,17.3,37.1,16.5,36.5,15.9z"/>
	</svg>
</div>

<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="684.3px"
	 height="320.6px" viewBox="0 0 684.3 320.6" enable-background="new 0 0 684.3 320.6" xml:space="preserve">
<g id="background">
</g>
<g id="west">
	<g>
		<g>
			<polygon fill="#52524F" points="559.2,198.1 548.3,198.4 547.9,192.5 549.6,193.2 553.9,192.8 553.5,187.3 541.7,187.5 
				538.5,183.2 538.6,181 523.5,167.3 519.8,170.2 541.4,196.7 544.5,197.8 544.5,199.2 540.4,199.2 541.4,202.5 568.1,203.7 			"/>
			<polygon fill="#52524F" points="576.3,184.2 578.1,183 578.1,168.5 576.3,167.7 575.4,163.2 572.8,163.2 571.1,167.8 569,169.6 
				553.6,177.9 553.6,186.2 558.8,193 571.7,193 573.4,188.8 576.3,186.1 			"/>
			<polygon fill="#52524F" points="587.7,183 579.9,186 580,187.8 578.1,187.8 578.1,198.5 582.1,198.5 581.5,191.7 584.6,192.8 
				584.6,197.6 587.8,197.4 			"/>
			<polygon fill="#52524F" points="651.1,239.5 643.2,232.7 642.6,219.8 637.4,210.8 632.7,210.6 630.8,226.8 621.8,226.2 
				619.3,224.6 618.9,218.2 623.7,219.2 627.7,215.3 619.2,210.1 609.1,210.1 601.9,220.4 599,220.4 599,217.1 590.3,217.8 
				576.6,233.4 569.4,233.5 561.3,239.1 560.7,263.2 555.8,267.9 555.8,272.2 579.4,264.1 598.5,263.3 605.6,278.9 627.2,279.6 
				648.1,260 653.3,248.2 			"/>
			<polygon fill="#52524F" points="608.4,290.8 616.1,291.7 622.3,288.3 622.4,283.6 615.6,282.9 			"/>
			<polygon fill="#52524F" points="682.1,269.6 678.9,270.3 678.8,263 673,263.4 672.2,274.7 667.1,278.2 657.5,279.5 642.2,290.4 
				639.6,292.5 639.6,296.2 647.6,295 667,283 672.5,279.4 678.4,276.8 684.3,273.5 			"/>
			<polygon fill="#52524F" points="621.9,189.2 617,189.4 617.4,184.2 612.7,181.4 606,188.1 610.5,193.7 620.2,195.1 625.6,197.9 
				625.8,200.6 622.2,200.6 622.4,206 634.1,205.3 638.4,200.7 643,200.3 643,208.7 650.9,208.7 650.9,205.3 646.9,205.3 
				646.2,195.1 627.2,186.4 			"/>
			<polygon fill="#52524F" points="480.6,164.8 482.4,169.8 489.1,167.3 489.9,160.4 484.5,159.3 			"/>
			<polygon fill="#52524F" points="402,223.1 392.9,221.9 392.9,229 396.1,232.8 393.6,236.6 389.9,240.9 389.9,248.7 395,253.6 
				399.5,246.2 408.5,233.1 412.8,212.5 407.3,212.5 			"/>
			<polygon fill="#52524F" points="589.7,201.3 586.7,201.3 586.7,202.9 589,203.7 			"/>
			<rect x="572.8" y="203.7" fill="#52524F" width="3.5" height="2"/>
			<polygon fill="#52524F" points="581.4,205.6 583.6,205.6 583.6,203.9 585.2,203.7 585.2,202 581.7,202 580.2,203.7 578.1,205.6 
				578.1,207.3 581.4,207 			"/>
			<polygon fill="#52524F" points="590.4,207.2 594,207.2 594,205.3 596.4,205.6 596.1,202.5 592.1,203.1 591.7,205.1 587.2,205.6 
				587,205.6 587,208.7 590.4,208.7 			"/>
			<path fill="#52524F" d="M46.4,53.6l0.7-4.7l-4.8-0.7c0,0.3,0.4,5.4,0.7,5.4C43.4,53.6,46.4,53.6,46.4,53.6z"/>
			<polygon fill="#52524F" points="286.8,49.2 287.1,52 282.8,52.9 282.3,59 287.4,59 294.3,58.4 297.8,54.2 294,52.7 292,50.3 
				288.9,45.3 287.4,38.3 281.6,39.4 280,41.9 280,44.8 282.8,46.7 			"/>
			<polygon fill="#52524F" points="281.8,51.5 282.1,47.7 278.7,46.2 273.9,47.3 270.4,53 270.4,56.7 274.5,56.7 			"/>
			<path fill="#52524F" d="M526.2,163.4l21,20.1l1.1-3.5l-17-24.3l1.8-7.1l9,10.2l5,0.5l6.6-4.4l-1.1-6.6l-10.9-8.8l-0.4-7.9
				l3.1-4.2l5.5,1.8l-0.4,3.8l3.1,4.8l2.8-2l-1.5-5.7l15.5-5.5l6.8-5.7l-1-10.2l-13.5-14.1L561.3,83h6l18.6,14.1l5.2-1.4l-3.4-4.6
				l-9.9-6l0.6-9l11.8,0l1-11.1l-4.5-5.9l2.6-2.9l5.7,5.7l1.8-2.4l-7.3-8.4L571,49l-2.4-4.9l5.3-7.5l4.2,3.1l12.6,1.1l15.9-10.6
				l2.6,3.3l-3.5,5.5v5.5l14.6,11.9l4.6-2.4l-1.8-8l-10.4-9.7l13.7-0.9v-4l6.6-1.3l-5.1-3.5l0.2-2.7l13.9,2.3l2.6-2.3L626,16.1
				l-68.5-3.5l-6.4-3.3L541,7.8l-7.6-0.3l-6.9,7l-2.9-0.2l-9.2-6.9h-27.2L474.5,0l-25.2,1.6l-19.2,8.6l0.1,9.9l-5.9,1.8l-1.3-9.9
				l-2.2-3.4l-6.6-1.6l-1.5,6l2,4.9l-23.5-1.5l-11.2,5.2l-1.7-4.9l-2.8,0.7l-2.1,5.5l-5.9,4.6l-14.4-0.4l-0.7-3.2l15-0.7l3.1-2.6
				l-18.1-8.4l-22.1,0.7L318,18.9l-4.6,8.3l-8.2,3.2l-3.4,3.8l0.8,4.3l4.2,0.6l2.6,6.4l7.3-2.9l1.2,8.5h-2.2l-6-0.9l-6.6,1.1
				l-6.4,9.1l-9.2,1.4l-1.3,7.8l3.9,0.9l-1.1,5l-9.1-1.8l-8.3,1.8l-1.8,4.7l1.4,9.7l4.9,2.3l8.2,0l5.5-0.5l1.7-4.4l8.7-11.3l5.7,1.2
				l5.6-5.1l1.1,4l13.8,9.3l-1.7,2.3l-6.2-0.3l2.4,3.4l3.8,0.9l4.5-1.9l-0.1-5.4l2-1l-1.6-1.7l-9.2-5.1l-2.4-6.8h7.7l2.4,2.4
				l6.6,5.7l0.3,6.9l6.8,7.3l2.5-10l4.7-2.6l0.9,8.2l4.6,5.1l14-0.2l4.1,3.1v7.3l-5.1,4.6h-14.1l-8.6-6.4l-9.1,0.9v5.5h-2.9
				l-3.1-2.2l-15.7-4V91l-19.9,1.5l-6.2,3.3H280l-3.9-0.4l-9.6,5.3v10L247,124.9l1.6,6h4l-1,5.7l-2.8,1l-0.1,15l16.9,19.3h7.4
				l0.4-1.2h13.2l3.8-3.5h7.5l4.1,4.1l11.2,1.2l-1.5,14.9l12.4,21.9l-6.6,12.5l0.4,5.9l5.2,5.1v14.2l6.8,9.1V268h20l15-15.5l4.7-8.4
				l6-1.3v-7.1l4-4.7l8.4-11.5l-1.8-17.5l-3.7-6.5l16.5-15.8l18.2-26l-3.5-1.6l-18.9,4l-4.9-2.4l-19.9-37.4l1.4-1.6l19.7,23.9
				l0.5,7.4l4.6,4.6l9.3-0.6l19.4-14l6.1-4l-0.1-4.9l-6.5-0.8c0,0-22.7-10.7-22.7-11.2c0-0.5,0.1-9.2,0.1-9.2h5l0.7,6.3l10.5,6
				l12,0.6l26.1,4.3l6.1,3.8v6l-0.8,8.1l13.3,22l4.3,1l4.3-6.2L486,140l4.5-9.6l7.2-2.7l12.7,1.2l15.9,14.1V163.4z M343,23.6
				l-8.8,5.4v3.5l5,2.3l0.3,4.8l-7,10.4l-12.1-0.1l-0.8-2.5l7.6-3.9l0.1-14.4l12.9-9h2.8V23.6z M370,85l-11.5-0.5l-3.4,0.5v-7.8
				l2.6-2.9l2.8-0.9l6.1-0.7l1.3-2.1l2.5,1.2l0.4,7.1l6.7,2.7L378,85H370z M414,90.6l-2,1.9l-4.7-0.4l-0.9-1.4l-7.3-0.5l0.5-2.4
				l3.8-3.3v-2.8l-7.4-5.4l-0.3-6.8l1.5-3.4l6-0.5l5.1,2.1l0.2,3.5l-7.2-0.4l-0.4,3.3l9.1,6v4.4l3.9,2.9V90.6z"/>
			<path fill="#52524F" d="M182.7,70.5h-5.1v2.6h1.2c0,0,0.1,0.6,0.2,1.3l3.1-0.3l1.9-1.2l0.5-2.4l2.5-0.2l1-2.1l-2.3-0.5l-2,0.1
				L182.7,70.5z"/>
			<polygon fill="#52524F" points="170.5,75.1 174.2,74.8 174.5,72.2 172.3,70.5 170.7,72.5 			"/>
			<path fill="#52524F" d="M218.9,188.6l-15.6-0.1l-12.4-4.7l-0.6-8.8l-4.1-7.2l-11.2-0.1l-6.5-10.2l-5.7-2.8l-0.3,3.1l-10.5,0.6
				l-3.8-5.3l-10.9-2.2l-9,10.4l-14.1-2.4l-1-15.9l-10.3-1.8l4.1-7.8l-1.2-4.5l-13.5,9.1l-8.5-1l-3-6.7l1.9-6.9l4.7-8.7l10.8-5.5
				l20.9,0l-0.1,6.4l7.5,3.5l-0.6-10.9l5.4-5.5l10.9-7.2l0.7-5.1l10.9-11.3l11.6-6.4l-1-0.8l7.8-7.4l2.9,0.8l1.3,1.7l3-3.3l0.7-0.3
				l-3.3-0.4l-3.3-1.1v-3.2l1.8-1.4h3.9l1.8,0.8l1.5,3.1l1.9-0.3v-0.3l0.5,0.2l5.4-0.8l0.8-2.7l3.1,0.8v2.9l-2.9,2h0l0.4,3.2l9.8,3
				c0,0,0,0,0,0.1l2.3-0.2l0.2-4.3l-7.8-3.5l-0.4-2.1l6.5-2.2l0.3-6.2l-6.8-4.1L195.3,36l-9.3,4.6h-3.4l0.9-8l-12.6-3l-5.2,3.9v12.1
				l-9.4,3l-3.8,7.8l-4.1,0.6V47l-8.8-1.2l-4.4-2.9l-1.8-6.5l15.8-9.2l7.7-2.4l0.8,5.2l4.3-0.2l0.3-2.6l4.5-0.6l0.1-0.9l-1.9-0.8
				l-0.4-2.8l5.5-0.5l3.3-3.5l0.2-0.3l0,0l1-1.1l11.6-1.5l5.1,4.4L178,26.9l17.2,4l2.2-5.7h7.5l2.7-5l-5.3-1.3v-6.3l-16.6-7.4
				l-11.5,1.3l-6.5,3.4l0.4,8.2l-6.8-1l-1-4.6l6.5-5.9L155,6.1l-3.4,1l-1.5,4l4.4,0.7l-0.9,4.4l-7.5,0.4l-1.2,2.9l-10.9,0.3
				c0,0-0.3-6.2-0.7-6.2s8.5-0.2,8.5-0.2l6.5-6.3l-3.5-1.8l-4.7,4.6l-7.8-0.4l-4.7-6.5h-10L107.2,11h9.6l0.9,2.8l-2.5,2.4l10.6,0.3
				l1.6,3.8l-11.9-0.4l-0.6-2.9l-7.5-1.6l-4-2.2l-17.7,0.2l-5.4,5.3l-3.7-0.3l-4.1-2.4l-12.2-3.7H37.8l-13,8.8l-8.7,1.3l-4,3.1
				l6.2,0.9v2.5H5.2L0,32.5l6.6,5.6l18.1,0.2l2.5-2.7h15.2l5.4,4.9l-0.3,7.5l4.6,4.3l-3.8,2.7l0.9,9.9L35.5,81.5v15.6l7.4,3.5v14
				l7.1,12.1l5.7,0.9l0.7-4.1L49.6,113l-1.3-10.1h4l1.7,10.5l9.8,14.3l-2.5,4.6l6.2,9.5l15.5,3.8V143l6.2,0.9l-0.6,4.4l4.9,0.9
				l7.5,2.1l10.6,12.1l13.5,1l1.3,11l-9.3,6.5l-0.4,9.9l-1.3,6l13.4,16.8l1,5.7c0,0,4.9,1.3,5.5,1.3c0.6,0,10.9,7.8,10.9,7.8v30.3
				l3.7,1l-2.5,14l6.2,8.2l-1.1,13.9l8.2,14.4l10.5,9.1l10.5,0.2l1-3.4l-7.7-6.5l0.4-3.3l1.4-4l0.3-4l-5.2-0.1l-2.6-3.3l4.3-4.2
				l0.6-3.2l-4.9-1.4l0.3-2.9l6.9-1.1l10.5-5.1l3.5-6.5l11-14.1l-2.5-11.1l3.4-5.9l10.2,0.3l6.8-5.4l2.2-21.3l7.6-9.6l1.3-6.2
				l-6.9-2.2L218.9,188.6z M138.9,79.8l-2.5,2.5h-5.6l0.9-3.9l2.7-0.2l0.6-1.3l4.1-0.6V79.8z M140.2,72.9l-2.7,1.7l-3.3,0.6
				c0,0,0-5.3,0-5.8h6V72.9z M145.2,68.8l2.7,1.7l-2.2,1.8l-2.1-1.8L145.2,68.8z M141.7,73.2h0.4l6.7,2v3.4h-5.6l-1.5-2.2V73.2z
				 M137.2,63.7l3.6,3.3l-3.6,0.9V63.7z M121.8,64.3l5.1-2.1h7v2.1h1.5v3.6h-10.6l-4-1.1L121.8,64.3z M120.8,73.7l4.1-4.4h5.9
				l-7.5,10.5l-3.1-1.7L120.8,73.7z M115.4,48.8l4.2,1l-1.4,5.6l-4.5,1.4l-2.9-5.9L115.4,48.8z M94.4,22.1v-0.3h3.9l0.3-1.3h6.3v2.8
				l-1.8,2.4h-8.7V22.1z M100.6,30.7c0,0,3.9-0.7,4.2-0.7c0.3,0,0,3.9,0,3.9L96,34.5l-1.7-2L100.6,30.7z"/>
		</g>
	</g>
</g>
<g id="east">
	<path fill="#8B8B87" d="M303.3,58.8c0.2-1,0.2-2.1,0.1-3.2l2-0.2c0.1,1.3,0.1,2.6-0.1,3.8L303.3,58.8z"/>
	<path fill="#FBB916" d="M312.2,55.9c-3.1-2.5-7.8-2.1-10.3,1.1c-2.5,3.1-2,7.8,1.1,10.3s7.8,2.1,10.3-1.1
		C315.8,63,315.3,58.4,312.2,55.9z M305.5,64.4c-1.4-1.1-1.6-3.2-0.5-4.5c1.1-1.4,3.2-1.6,4.5-0.5c1.4,1.1,1.6,3.2,0.5,4.5
		S306.9,65.5,305.5,64.4z"/>
	<g display="none">
		<path display="inline" fill="#8B8B87" d="M204.2,71.8c0.7-2.3,1.5-4.6,2.3-6.7l1.9,0.7c-0.8,2.1-1.6,4.4-2.3,6.7L204.2,71.8z
			 M209.1,58.4c0.9-2.2,1.9-4.4,2.9-6.5l1.8,0.9c-1,2-2,4.2-2.9,6.4L209.1,58.4z M215.4,45.6c1.2-2.1,2.5-4.2,3.8-6.1l1.6,1.1
			c-1.3,1.9-2.5,3.8-3.7,5.9L215.4,45.6z M225.1,35.1l-1.5-1.3c1.6-1.9,3.3-3.6,5-5.2l1.4,1.5C228.3,31.6,226.6,33.3,225.1,35.1z
			 M235.3,25.8l-1.1-1.7c2-1.4,4.2-2.6,6.3-3.5l0.8,1.8C239.3,23.4,237.3,24.5,235.3,25.8z M247.8,20.3l-0.4-1.9
			c2.3-0.5,4.8-0.8,7.2-0.9l0.1,2C252.4,19.5,250.1,19.8,247.8,20.3z M299.2,48c-0.9-1.9-2.1-3.9-3.6-5.9l1.6-1.2
			c1.5,2.1,2.7,4.2,3.7,6.2L299.2,48z M261.5,19.9l0.3-2c2.3,0.4,4.7,1,7,1.7l-0.6,1.9C266,20.8,263.7,20.2,261.5,19.9z M291.2,36.7
			c-1.6-1.7-3.3-3.3-5-4.8l1.3-1.5c1.8,1.6,3.6,3.2,5.2,5L291.2,36.7z M274.6,24.2l0.9-1.8c2.1,1.1,4.2,2.3,6.2,3.6l-1.1,1.7
			C278.7,26.4,276.7,25.2,274.6,24.2z"/>
		<path display="inline" fill="#8B8B87" d="M203.9,78.4c-0.7,2.3-1.4,4.6-2.2,6.8l-1.9-0.6c0.7-2.2,1.5-4.4,2.1-6.7L203.9,78.4z
			 M199.3,91.9c-0.9,2.3-1.8,4.5-2.8,6.6l-1.8-0.8c0.9-2.1,1.9-4.2,2.8-6.5L199.3,91.9z M193.3,104.9c-1.2,2.2-2.4,4.2-3.7,6.2
			l-1.7-1.1c1.2-1.9,2.4-3.9,3.6-6L193.3,104.9z M183.8,115.6l1.6,1.3c-1.6,1.9-3.2,3.7-4.8,5.3l-1.4-1.4
			C180.8,119.2,182.3,117.4,183.8,115.6z M173.9,125.2l1.2,1.6c-2,1.4-4.1,2.7-6.2,3.7l-0.9-1.8
			C169.9,127.7,171.9,126.5,173.9,125.2z M161.5,131l0.5,1.9c-2.3,0.6-4.8,1-7.2,1.1l-0.1-2C157,131.9,159.2,131.5,161.5,131z
			 M109.4,104.5c1,1.9,2.2,3.9,3.7,5.8l-1.6,1.2c-1.5-2-2.8-4.1-3.9-6.1L109.4,104.5z M147.8,131.7l-0.3,2c-2.3-0.3-4.7-0.8-7.1-1.6
			l0.6-1.9C143.3,130.9,145.6,131.4,147.8,131.7z M117.7,115.6c1.6,1.6,3.3,3.2,5.1,4.7l-1.3,1.6c-1.9-1.5-3.7-3.1-5.3-4.8
			L117.7,115.6z M134.6,127.7l-0.9,1.8c-2.1-1-4.3-2.2-6.3-3.5l1.1-1.7C130.5,125.6,132.5,126.7,134.6,127.7z"/>
		<path display="inline" fill="#8B8B87" d="M60.3,63.7l-0.1-2c2.4-0.1,4.8,0,7.3,0.4l-0.3,2C64.9,63.8,62.6,63.6,60.3,63.7z
			 M105.8,100.4c-0.6-2.1-1.4-4.3-2.4-6.5l1.8-0.8c1.1,2.3,1.9,4.6,2.5,6.8L105.8,100.4z M73.8,65.9l0.7-1.9c2.2,0.8,4.4,1.8,6.6,3
			l-1,1.8C78.1,67.6,75.9,66.6,73.8,65.9z M100,87.8c-1.2-1.9-2.6-3.8-4.1-5.7l1.6-1.3c1.5,1.9,2.9,3.8,4.2,5.8L100,87.8z
			 M85.9,72.5l1.2-1.6c1.9,1.4,3.7,3,5.5,4.7L91.2,77C89.5,75.4,87.8,73.9,85.9,72.5z"/>
	</g>
	<path fill="#FBB916" d="M55.9,62.4c-3.1-2.5-7.8-2.1-10.3,1.1c-2.5,3.1-2,7.8,1.1,10.3s7.8,2.1,10.3-1.1
		C59.5,69.5,59,64.9,55.9,62.4z M49.3,70.9c-1.4-1.1-1.6-3.2-0.5-4.5c1.1-1.4,3.2-1.6,4.5-0.5c1.4,1.1,1.6,3.2,0.5,4.5
		S50.7,72,49.3,70.9z"/>
	<path display="none" fill="#FBB916" d="M70.2,62.1c-0.5-0.4-1.1-0.5-1.8-0.4l-3.6,0.5L58.5,63L45.9,50.7l-3.3,0.4l6.3,13L41,65.3
		l-5.5-4.8l-1.6,0.2l0.2,0.6l-0.3,0.1l2.9,6.5L37,69l-0.1,1.2l-1,7l0.3,0l-0.1,0.7l1.6-0.2l4-6.1l7.9-1.1l-2.5,14.2l3.3-0.5
		l8.8-15.2l6.3-0.9l3.6-0.5c0.7-0.1,1.2-0.4,1.6-0.9c0.5-0.6,0.8-1.4,0.7-2.3c0,0,0-0.1,0-0.1c0,0,0-0.1,0-0.1
		C71.3,63.2,70.8,62.5,70.2,62.1z"/>
</g>
</svg>

<svg version="1.1" id="route" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="256.3px" height="22.3px" viewBox="0 0 256.3 22.3" enable-background="new 0 0 256.3 22.3" xml:space="preserve">
<path id="js-animation-path" fill="none" stroke="#8C8B87" stroke-width="3" stroke-miterlimit="10" stroke-dasharray="7" d="M0.5,20.8
	c0,0,108.2-39,255.5-6.2"/>
</svg>
</div>
            
          
!
            
              .wrapper {
	width: 685px;
	margin:0 auto;
	position:absolute;
}
.animated-plane {
  width: 38px;
  height: 34px;
  position: absolute;
  top:28px;
  left:35px;
  z-index:9999;
}
#route {
	position:absolute;
	top:45px;
	left:55px;
}
            
          
!
            
              console.clear()

  // get the animation path node
  var $path = $('#js-animation-path'), path = $path[0];
  // get the animation object node
  var $obj = $('#js-animated-plane');

  // get path's length
  var pathLength = path.getTotalLength();

  // create new tween by initializing TWEEN.Tween object from 0 
  var tween = new TWEEN.Tween({ length: 0  })
      // to path length
      // in 2000 milliseconds
      .to({ length: pathLength }, 8000)
      // on update callback fires on every tick
      .onUpdate(function(){
        // get current point
        var point = path.getPointAtLength(this.length);
        // get previous point
        var pointPrevious = path.getPointAtLength(this.length-1);
        // get x1
        var x1 = point.y - pointPrevious.y;
        // get x2
        var x2 = point.x - pointPrevious.x;
        //get angle in radians and convert it to degrees
        var angle = Math.atan(x1/x2)*(180/Math.PI);
      
        // fix to normalize object angle
        if (point.x-pointPrevious.x < 0){
          angle = 180 + angle;
        }
      
        $obj.css({
          'transform': 'translate('+ point.x + 'px,'+ point.y +'px) rotate('+angle+'deg)'
        });
      })
      .onStart(function(){
        console.clear();
      })
      .repeat(999999999).start();

  // animate loop
  animate = function(){
    requestAnimationFrame(animate)
      TWEEN.update()
  }
 
  //start the animation loop
  animate()
            
          
!
999px
Close

Asset uploading is a PRO feature.

As a PRO member, you can drag-and-drop upload files here to use as resources. Images, Libraries, JSON data... anything you want. You can even edit them anytime, like any other code on CodePen.

Go PRO

Loading ..................

Console