"device"
Bootstrap 3.0.0 Snippet by evarevirus

<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script> <script src="//code.jquery.com/jquery-1.11.1.min.js"></script> <!------ Include the above in your HEAD tag ----------> <!DOCTYPE html><html class=''> <head><script src='//production-assets.codepen.io/assets/editor/live/console_runner-079c09a0e3b9ff743e39ee2d5637b9216b3545af0de366d4b9aad9dc87e26bfd.js'></script><script src='//production-assets.codepen.io/assets/editor/live/events_runner-73716630c22bbc8cff4bd0f07b135f00a0bdc5d14629260c3ec49e5606f98fdd.js'></script><script src='//production-assets.codepen.io/assets/editor/live/css_live_reload_init-2c0dc5167d60a5af3ee189d570b1835129687ea2a61bee3513dee3a50c115a77.js'></script><meta charset='UTF-8'><meta name="robots" content="noindex"><link rel="shortcut icon" type="image/x-icon" href="//production-assets.codepen.io/assets/favicon/favicon-8ea04875e70c4b0bb41da869e81236e54394d63638a1ef12fa558a4a835f1164.ico" /><link rel="mask-icon" type="" href="//production-assets.codepen.io/assets/favicon/logo-pin-f2d2b6d2c61838f7e76325261b7195c27224080bc099486ddd6dccb469b8e8e6.svg" color="#111" /><link rel="canonical" href="https://codepen.io/chrisgannon/pen/rLNNge?q=device&order=popularity&depth=everything&show_forks=false" /> <script src="https://use.typekit.net/sxm0sex.js"></script> <script>try{Typekit.load({ async: true });}catch(e){}</script> <meta name="viewport" content="width=device-width, initial-scale=1"> <style class="cp-pen-styles">body { background-color:#FFF; overflow: hidden; } body, html { height: 100%; width: 100%; margin: 0; padding: 0; } .devicesSVG{ position:absolute; width:100%; height:100%; /* visibility:hidden; */ overflow:hidden } .horizonSVG{ position:absolute; width:100%; height:100%; /* visibility:hidden; */ overflow:visible } svg{ /* top:-100px; */ overflow:visible; visibility:hidden; /* max-width:740px; */ /* left:300px; */ } .horizon{ text-anchor:middle; fill:#7D7D7D; font-size:64px; font-family: museo-sans-rounded,sans-serif; } #visitText a{ text-anchor:middle; fill:#A5A7AA; font-size:32px; font-family: museo-sans-rounded,sans-serif; opacity:1; } #visitText a:hover{ fill:#EA5679; }</style></head><body> <svg class="horizonSVG" viewBox="0 0 800 600" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMaxYMid meet" text-rendering="optimizeSpeed"> <defs> <linearGradient id="warmSkyGrad" gradientUnits="userSpaceOnUse" x1="418.5291" y1="12" x2="418.5291" y2="419.5709"> <stop offset="0" style="stop-color:#E84778"/> <stop offset="0.1552" style="stop-color:#EE6F7A"/> <stop offset="0.3347" style="stop-color:#F4967C"/> <stop offset="0.5122" style="stop-color:#F9B57D"/> <stop offset="0.6847" style="stop-color:#FCCB7E"/> <stop offset="0.85" style="stop-color:#FED87F"/> <stop offset="1" style="stop-color:#FFDD7F"/> </linearGradient> <linearGradient id="mountainSkyGrad" gradientUnits="userSpaceOnUse" x1="400" y1="65.7474" x2="400" y2="573.9511"> <stop offset="0" style="stop-color:#E5F9FA"/> <stop offset="1" style="stop-color:#FFFFFF"/> </linearGradient> <clipPath id="mainLogoMask"> <circle class="mainLogoMaskCircle" cx="400" cy="215" r="203.8"/> </clipPath> </defs> <rect class="skyBg" x="-400" y="-300" fill="url(#mountainSkyGrad)" width="1600" height="1200"/> <g class="mainLogoGroup"> <g class="maskedLogoGroup" clip-path="url(#mainLogoMask)"> <rect class="warmSkyBg" fill="url(#warmSkyGrad)" width="1900" height="1200" x="-800" y="-600" opacity="0"/> <circle class="logoSun" fill="#FFFCEA" cx="400" cy="215" r="55.3"/> <g class="waterGroup"> <rect id="waterCircle" x="0.2" fill="#5DB3C6" width="2014.1" height="278"/> <path fill="#A5DCE4" d="M1710,0c-0.4,2.9-2.1,7.4-5.1,13.1c-15.3,21.7-54.3,38-89,40.2c-36.6,2.3-100.9,7.3-102.9,16.5 c-2,9.2,44.9,15.6,54.8,20.3c19.6,9.2,1.5,25.4-44.6,37.3c-26.2,6.8-106.5,18.5-147,23.7C1007,198.8,0,278,0,278v269h1007h0.2H2014 V0C2014,0,1743,0,1710,0z"/> </g> </g> </g> <g class="allMountains" > <g class="smallGroup"> <g id="small2_1_"> <polygon fill="#D9D4E2" points="1530.4,229.3 1825.5,489.1 1240.1,489.1 "/> <polygon fill="#D9D4E2" points="1146.9,258.6 1213.3,305 1230.4,290.6 1506.1,489.1 836.2,489.1 "/> </g> <g id="small1_1_"> <polygon fill="#D9D4E2" points="2519.4,229.3 2814.5,489.1 2229.1,489.1 "/> <polygon fill="#D9D4E2" points="2135.9,258.6 2202.3,305 2219.4,290.6 2495.1,489.1 1825.2,489.1 "/> </g> </g> <g class="medGroup"> <g id="med3_1_"> <polygon fill="#B3A8C7" points="1824.4,134.3 2266.3,489.1 1334,489.1 "/> <polygon fill="#B3A8C7" points="862.6,143.1 1382.8,489.1 408,489.1 "/> </g> <g id="med1_4_"> <polygon fill="#B3A8C7" points="3682.4,134.3 4124.3,489.1 3192,489.1 "/> <polygon fill="#B3A8C7" points="2720.6,143.1 3240.8,489.1 2266,489.1 "/> </g> <g id="med1_3_"> <polygon fill="#B3A8C7" points="5540.4,134.3 5982.3,489.1 5050,489.1 "/> <polygon fill="#B3A8C7" points="4578.6,143.1 5098.8,489.1 4124,489.1 "/> </g> </g> <g class="bigGroup"> <g id="big_7_"> <polygon fill="#7D76AA" points="541,12 1270.2,489.1 0,489.1 "/> <polygon fill="#7D76AA" points="2240.2,0 1511,489.1 2676,489.1 "/> </g> <g id="big_6_"> <polygon fill="#7D76AA" points="3217,12 3946.2,489.1 2676,489.1 "/> <polygon fill="#7D76AA" points="4916.2,0 4187,489.1 5352,489.1 "/> </g> <g id="big_5_"> <polygon fill="#7D76AA" points="5893,12 6622.2,489.1 5352,489.1 "/> <polygon fill="#7D76AA" points="7592.2,0 6863,489.1 8028,489.1 "/> </g> <g id="big_4_"> <polygon fill="#7D76AA" points="8569,12 9298.2,489.1 8028,489.1 "/> <polygon fill="#7D76AA" points="10268.2,0 9539,489.1 10704,489.1 "/> </g> </g> </g> <text class="horizon" x="50%" y="50%">horizon.io</text> <g class="wholeChat"> <linearGradient id="chatPanelGrad" gradientUnits="userSpaceOnUse" x1="400" y1="375" x2="400" y2="182" > <stop offset="0" style="stop-color:#FFEAB6;stop-opacity:0.6"/> <stop offset="1" style="stop-color:#FEDA7F;stop-opacity:0"/> </linearGradient> <linearGradient id="chatMaskGrad" gradientUnits="userSpaceOnUse" x1="400" y1="205" x2="400" y2="182" > <stop offset="0" style="stop-color:#EEEEEE;stop-opacity:1"/> <stop offset="1" style="stop-color:#FEDA7F;stop-opacity:0"/> </linearGradient> <mask id="chatMask"> <rect class="chatMask" x="120" y="186" fill="url(#chatMaskGrad)" width="560" height="203"/> </mask> <rect class="chatPanel" x="140" y="186" fill="url(#chatPanelGrad)" width="520" height="203.1"/> <g class="allChat" mask="url(#chatMask)"> <g class="chat0 chatMessage"> <g> <circle cx="213.63" cy="410" r="16.7" fill="#e84778"/> <path d="M213.63,403.21a6.85,6.85,0,1,1-6.85,6.85A6.87,6.87,0,0,1,213.63,403.21Zm0,16.27c-6.16,0-8.83,2.78-9.74,4.08a16.68,16.68,0,0,0,19.48,0C222.46,422.26,219.79,419.48,213.63,419.48Z" fill="#fffcea"/> </g> <rect x="248.25" y="394.4" width="197.29" height="32.3" rx="6" ry="6" fill="#fffcea"/> </g> <g class="chat1 chatMessage"> <g> <circle cx="586.37" cy="460.06" r="16.7" fill="#5db3c6"/> <path d="M586.37,453.27a6.85,6.85,0,1,1-6.85,6.85A6.87,6.87,0,0,1,586.37,453.27Zm0,16.27c-6.16,0-8.83,2.78-9.74,4.08a16.68,16.68,0,0,0,19.48,0C595.2,472.32,592.53,469.54,586.37,469.54Z" fill="#fffcea"/> </g> <rect x="443.44" y="443.91" width="111.29" height="32.3" rx="4.63" ry="4.63" fill="#fff"/> </g> <g class="chat2 chatMessage"> <g> <circle cx="586.37" cy="510.06" r="16.7" fill="#5db3c6"/> <path d="M586.37,503.27a6.85,6.85,0,1,1-6.85,6.85A6.87,6.87,0,0,1,586.37,503.27Zm0,16.27c-6.16,0-8.83,2.78-9.74,4.08a16.68,16.68,0,0,0,19.48,0C595.2,522.32,592.53,519.54,586.37,519.54Z" fill="#fffcea"/> </g> <rect x="483.44" y="493.91" width="71.29" height="32.3" rx="4.63" ry="4.63" fill="#fff"/> </g> <g class="chat3 chatMessage"> <g> <circle cx="213.63" cy="560.06" r="16.7" fill="#e84778"/> <path d="M213.63,553.27a6.85,6.85,0,1,1-6.85,6.85A6.87,6.87,0,0,1,213.63,553.27Zm0,16.27c-6.16,0-8.83,2.78-9.74,4.08a16.68,16.68,0,0,0,19.48,0C222.46,572.32,219.79,569.54,213.63,569.54Z" fill="#fffcea"/> </g> <rect x="248.25" y="543.97" width="136.29" height="32.3" rx="4.63" ry="4.63" fill="#fffcea"/> </g> <g class="chat4 chatMessage"> <g> <circle cx="586.37" cy="610" r="16.7" fill="#5db3c6"/> <path d="M586.37,603.21a6.85,6.85,0,1,1-6.85,6.85A6.87,6.87,0,0,1,586.37,603.21Zm0,16.27c-6.16,0-8.83,2.78-9.74,4.08a16.68,16.68,0,0,0,19.48,0C595.2,622.26,592.53,619.48,586.37,619.48Z" fill="#fffcea"/> </g> <rect x="413.44" y="593.85" width="141.29" height="32.3" rx="4.63" ry="4.63" fill="#fff"/> </g> <g class="chat5 chatMessage"> <g> <circle cx="213.63" cy="660.06" r="16.7" fill="#e84778"/> <path d="M213.63,653.27a6.85,6.85,0,1,1-6.85,6.85A6.87,6.87,0,0,1,213.63,653.27Zm0,16.27c-6.16,0-8.83,2.78-9.74,4.08a16.68,16.68,0,0,0,19.48,0C222.46,672.32,219.79,669.54,213.63,669.54Z" fill="#fffcea"/> </g> <rect x="248.25" y="643.97" width="87.29" height="32.3" rx="4.63" ry="4.63" fill="#fffcea"/> </g> </g> </g> </svg> <svg class="devicesSVG" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 600" preserveAspectRatio="xMidYMax meet"> <defs> <clipPath id="desktopMask"> <rect class="desktopMask" x="59" y="154" fill="#009444" width="388" height="231"/> </clipPath> <clipPath id="iPadMask"> <rect class="iPadMask" x="509" y="215" fill="#ED1C24" width="166" height="224"/> </clipPath> <clipPath id="phoneMask"> <rect class="phoneMask" x="716" y="333" fill="#ED1C24" width="61" height="107"/> </clipPath> </defs> <g id="allDevices" > <g class="desktopGroup device"> <g clip-path="url(#desktopMask)"> <g class="desktopSVGContainer"></g> </g> <g> <path fill="#707174" d="M208.9,416.3h83.2l-0.9-5.7c0,0-81.3,0-81.3,0L208.9,416.3z"/> <rect x="61.3" y="156.3" fill="none" width="383" height="226.6"/> <polygon fill="#A5A7AA" points="203.4,458.3 297.1,458.3 292.1,416.3 208.9,416.3 "/> </g> <g> <path fill="#5A5A5A" d="M458.3,131.3H45.8c-6.6,0-12,5-12,11.1v121v115.7v22c0,6.1,5.4,11.1,12,11.1h163.8h81.9h166.8 c6.6,0,12-5,12-11.1v-86.8v-116v-55.9C470.3,136.3,464.8,131.3,458.3,131.3z M446.3,318.2V385h-387v-10V259.3V154.3h387v47.9V318.2 z"/> <path fill="#9E9E9E" d="M255.4,398.6c0.1-0.1,0.4-1.9,0.3-2.3c-0.1-0.4-1-1.6-1.6-2.1c-0.3-0.6-0.7-2.2-0.8-2.5 c-0.2-0.7-0.4-1-0.7-1.2c-0.2-0.2-0.6-0.7-1.8-0.8c-1.2-0.1-2.2,0.9-2.5,1.7c-0.1,0.2-0.2,0.8-0.4,1.9c-0.2,1.2-0.9,1.6-2.2,3 c-0.1,0.1-0.1,0.2-0.2,0.2c-0.1,0.3-0.4,1.1,0.1,1.6c0.4,0.4,0.7,0.6,1,0.7c-0.1,0.1-0.4,0.7,0.1,1c0.1,0.1,0.2,0.1,0.3,0.1 c-0.1,0.8-0.2,1.4-0.1,1.8c0,0.5,0.2,2.1,0.4,2.5c0.2,0.4,0.5,1.3,1.1,1.4c0.5,0.1,0.9-0.3,1.4-0.5s1.2-0.7,1.7-0.9 c0.2-0.1,0.3-0.1,0.4-0.2c0.3,0.3,0.9,0.9,1.2,1.1c0.2,0.1,0.5,0.2,0.9,0c0.4-0.2,0.8-1.3,1.1-2.2c0.3-0.9,0.5-1.7,0.3-4.1 C255.4,398.8,255.4,398.7,255.4,398.6z M247.5,400c-0.2,0-0.3,0-0.4,0C247.3,400,247.4,400,247.5,400z"/> </g> </g> <g class="iPadGroup device" > <g clip-path="url(#iPadMask)"> <g class="iPadSVGContainer"></g> </g> <g> <path fill="#5A5A5A" d="M680.1,195h-177c-6.6,0-12,5.4-12,12v108.5v101.1v0.5v29.5c0,6.6,5.4,12,12,12h177c6.6,0,12-5.4,12-12 v-60.2v-0.5V273.1V207C692.1,200.4,686.7,195,680.1,195z M674.1,277.3V389v0.5v49.1h-165V414v-0.5V311.3v-95.8h165V277.3z"/> </g> <g> <circle fill="#7C7D80" cx="591.3" cy="204.7" r="1.4"/> <g> <path fill="#444444" d="M591.6,444.3c-2.1,0-3.9,1.6-4.1,3.7c0-0.2,0-0.3,0-0.5c0-2.3,1.9-4.2,4.2-4.2s4.2,1.9,4.2,4.2 c0,0.2,0,0.3,0,0.5C595.5,446,593.8,444.3,591.6,444.3z"/> <path fill="#7B7C7F" d="M591.6,444.3c2.1,0,3.9,1.6,4.1,3.7c-0.2,2.1-2,3.7-4.1,3.7s-3.9-1.6-4.1-3.7 C587.7,446,589.5,444.3,591.6,444.3z"/> </g> </g> </g> <g class="phoneGroup device"> <g clip-path="url(#phoneMask)"> <g class="phoneSVGContainer"></g> </g> <g> <rect x="716.7" y="334" fill="none" width="59.8" height="105.3"/> <path fill="#5A5A5A" d="M768.7,315c0,0-2.5,0-2.9,0l-0.1,0h-5.5l-2.2,0h-33.2c-6.7,0-12.2,5.4-12.2,12v6.6v0.5v0.4v5.3v8.9v7.6 v2.1v7.4v1v79.5c0,6.6,5.5,12,12.2,12h43.8c6.7,0,12.2-5.4,12.2-12V327C780.8,320.4,775.3,315,768.7,315z M776.5,439.3h-59.8V334 h59.8V439.3z"/> </g> <g> <circle fill="#7C7D80" cx="746.7" cy="324.8" r="1.4"/> <g> <path fill="#444444" d="M746.6,445.2c-2.1,0-3.9,1.6-4.1,3.7c0-0.2,0-0.3,0-0.5c0-2.3,1.9-4.2,4.2-4.2c2.3,0,4.2,1.9,4.2,4.2 c0,0.2,0,0.3,0,0.5C750.5,446.9,748.7,445.2,746.6,445.2z"/> <path fill="#7B7C7F" d="M746.6,445.2c2.1,0,3.9,1.6,4.1,3.7c-0.2,2.1-2,3.7-4.1,3.7c-2.1,0-3.9-1.6-4.1-3.7 C742.7,446.9,744.4,445.2,746.6,445.2z"/> </g> </g> </g> </g> <text id="visitText" x="32%" y="90%"><a xlink:href="http://horizon.io" target="blank">Visit Horizon.io</a></text> </svg> <script src='//production-assets.codepen.io/assets/common/stopExecutionOnTimeout-b2a7b3fe212eaa732349046d8416e00a9dec26eb7fd347590fbced3ab38af52e.js'></script><script src='https://cdnjs.cloudflare.com/ajax/libs/gsap/1.18.5/TweenMax.min.js'></script><script src='https://s3-us-west-2.amazonaws.com/s.cdpn.io/35984/AnticipateEase.min.js'></script> <script >var xmlns = "http://www.w3.org/2000/svg", xlinkns = "http://www.w3.org/1999/xlink", select = function(s) { return document.querySelector(s); }, selectAll = function(s) { return document.querySelectorAll(s); }, devicesSVG = select('.devicesSVG'), horizonSVG = select('.horizonSVG'), desktopSVGContainer = select('.desktopSVGContainer'), iPadSVGContainer = select('.iPadSVGContainer'), phoneSVGContainer = select('.phoneSVGContainer'), desktopSVG = horizonSVG.cloneNode(true), iPadSVG = horizonSVG.cloneNode(true), phoneSVG = horizonSVG.cloneNode(true) desktopSVGContainer.appendChild(desktopSVG); iPadSVGContainer.appendChild(iPadSVG); phoneSVGContainer.appendChild(phoneSVG); document.body.removeChild(horizonSVG); desktopSVG.setAttribute('class', 'desktopSVG'); iPadSVG.setAttribute('class', 'iPadSVG'); phoneSVG.setAttribute('class', 'phoneSVG'); var allMountains = selectAll('.allMountains'), warmSkyBg = selectAll('.warmSkyBg'), smallGroup = selectAll('.smallGroup'), medGroup = selectAll('.medGroup'), bigGroup = selectAll('.bigGroup'), logoSun = selectAll('.logoSun'), mainLogoGroup = selectAll('.mainLogoGroup'), mainLogoMaskCircle = selectAll('.mainLogoMaskCircle'), waterGroup = selectAll('.waterGroup'), notifyDisp = selectAll('.notifyDisp') //console.log(numPeaks) TweenMax.set('svg', { visibility: 'visible' }) TweenMax.set(desktopSVGContainer, { scale: 0.48, x: -69, y: 6, transformOrigin: '50% 50%', svgOrigin: '252 270' }) TweenMax.set(iPadSVGContainer, { scale: 0.375, x: 74, y: 11, transformOrigin: '50% 50%', svgOrigin: '591 326' }) TweenMax.set(phoneSVGContainer, { scale: 0.185, x: 65, y: 16, transformOrigin: '50% 50%', svgOrigin: '746 386' }) TweenMax.set(allMountains, { x: '-=950', y: 111 }) TweenMax.set(waterGroup, { x: 800, y: 311 + 78 }) TweenMax.set('.phoneGroup', { x: -725, //changed in 008 y: 0, scale: 1.05, transformOrigin: '0% 100%' }) TweenMax.set('.iPadGroup', { x: -92, y: 0 }) TweenMax.set(mainLogoMaskCircle, { attr: { r: 560 } }) TweenMax.set(logoSun, { attr: { cy: 100 } }) //DEVICE SPECIFIC ANIMATION vv TweenMax.set(iPadSVG.querySelector('.waterGroup'), { y: 500 }) TweenMax.set(iPadSVG.querySelector('.wholeChat'), { y: 111 }) TweenMax.set(phoneSVG.querySelector('.wholeChat'), { y: 58, scale: 0.7, transformOrigin: '50% 0%' }) //DEVICE SPECIFIC ANIMATION ^^ //DEVICE SPECIFIC ANIMATION vv TweenMax.set(desktopSVG.querySelector('.horizon'), { y: '-=40' }) //DEVICE SPECIFIC ANIMATION ^^ var tl = new TimelineMax({ paused: true, repeat: -1, repeatDelay: 1 }); tl.staggerFrom([smallGroup, medGroup, bigGroup], 0.6, { y: '+=400', ease: Expo.easeOut }, 0.1, '-=1') .to(smallGroup, 4, { x: -(2 * 1200), ease: Power2.easeInOut }) .to(medGroup, 4, { x: -(3 * 1858), ease: Power2.easeInOut }, '-=4') .to(bigGroup, 4, { x: -(4 * 2676), ease: Power2.easeInOut }, '-=4') .to('.horizon', 1, { alpha: 0, x: '-=400', ease: Power2.easeIn }, '-=4') .to(waterGroup, 1, { x: -1000, ease: Power2.easeOut }, '-=1.8') .to(warmSkyBg, 1.2, { alpha: 1, ease: Power2.easeOut }, '-=2') .from(logoSun, 1.2, { attr: { cx: '+=500' }, ease: Power2.easeOut }, '-=2') .from('.chatPanel', 0.6, { scaleY: 0, transformOrigin: '50% 100%', ease: Power3.easeInOut }, '-=0.6') .to('.chatMessage', 0.6, { y: '-=50', //delay:0.25, ease: Anticipate.easeIn }, '-=0.6') .from('.chat0 rect', 0.2, { scaleX: 0.1, y: '+=30', transformOrigin: '0% 100%', ease: Anticipate.easeIn }, '-=0.2') .to('.chatMessage', 0.4, { y: '-=50', delay: 0.25, ease: Anticipate.easeIn }) .from('.chat1 rect', 0.2, { scaleX: 0.1, y: '+=30', transformOrigin: '100% 100%', ease: Anticipate.easeIn }, '-=0.2') .to('.chatMessage', 0.4, { y: '-=50', delay: 0.25, ease: Anticipate.easeIn }) .from('.chat2 rect', 0.2, { scaleX: 0.1, y: '+=30', transformOrigin: '100% 100%', ease: Anticipate.easeIn }, '-=0.2') .to('.chatMessage', 0.4, { y: '-=50', delay: 0.25, ease: Anticipate.easeIn }) .from('.chat3 rect', 0.2, { scaleX: 0.1, y: '+=30', transformOrigin: '0% 100%', ease: Anticipate.easeIn }, '-=0.2') .to('.chatMessage', 0.4, { y: '-=50', delay: 0.25, ease: Anticipate.easeIn }) .from('.chat4 rect', 0.2, { scaleX: 0.1, y: '+=30', transformOrigin: '100% 100%', ease: Anticipate.easeIn }, '-=0.2') .to('.chatMessage', 0.4, { y: '-=50', delay: 0.25, ease: Anticipate.easeIn }) .from('.chat5 rect', 0.2, { scaleX: 0.1, y: '+=30', transformOrigin: '0% 100%', ease: Anticipate.easeIn }, '-=0.2') .to('.chatPanel', 1, { alpha: 0, delay: 0 }) .to('.chatMessage', 1, { y: '-=200', alpha: 0, ease: Back.easeIn.config(0.6) }, '-=1') .to(mainLogoMaskCircle, 1, { attr: { r: 203.8 }, ease: Power3.easeInOut }, '-=0.5') //DEVICE SPECIFIC ANIMATION vv .to(iPadSVG.querySelector('.waterGroup'), 1, { y: '-=276', x: '-=100', ease: Power3.easeInOut }, '-=1') .to(phoneSVG.querySelector('.waterGroup'), 1, { y: '-=170', x: '-=100', ease: Power3.easeInOut }, '-=1') .to(desktopSVG.querySelector('.waterGroup'), 1, { y: '-=170', x: '-=100', ease: Power3.easeInOut }, '-=1') //DEVICE SPECIFIC ANIMATION ^^ //DEVICE SPECIFIC ANIMATION vv .to(iPadSVG.querySelector('.mainLogoGroup'), 1, { scale: 0.7, x: 418, y: 326, transformOrigin: '0% 0%', ease: Power3.easeInOut }, '-=1') .to(phoneSVG.querySelector('.mainLogoGroup'), 1, { scale: 0.7, x: 416, y: 326, transformOrigin: '0% 0%', ease: Power3.easeInOut }, '-=1') .to(desktopSVG.querySelector('.mainLogoGroup'), 1, { scale: 0.7, x: 416, y: 290, transformOrigin: '0% 0%', ease: Power3.easeInOut }, '-=1') //DEVICE SPECIFIC ANIMATION ^^ .to(logoSun, 1, { attr: { cy: 215, r: 75.3 }, ease: Anticipate.easeOut }, '-=1') .set('.horizon', { x: 0 }) .to(mainLogoGroup, 1, { alpha: 0, delay: 0, ease: Power1.easeIn }) .to('.horizon', 1, { alpha: 1, ease: Power2.easeIn }) tl.timeScale(0.6) tl.play(0) //ScrubGSAPTimeline(tl) //# sourceURL=pen.js </script> </body></html>

Related: See More


Questions / Comments: