Get an AI-generated overview or a file-by-file code breakdown. Ask questions about the project below the overview.
This web project recreates the iconic Disney animation sequence, featuring a magical arc, a comet, a morphing "plus" symbol, and the classic "Disney" logo text, all accompanied by a burst of stars. It's a purely visual, looping animation designed to evoke the familiar magical opening of Disney films, showcasing advanced SVG animation techniques.
The project is built using a single HTML file that embeds all CSS and JavaScript. The visual elements are entirely crafted using Scalable Vector Graphics (SVG), allowing for crisp, scalable animations. The HTML defines various SVG shapes like stars, dots, paths for the arc and logo, and uses <defs> for reusable elements and filters for glow effects. Initial CSS sets a dark background, centers the SVG, and hides elements like the "plus" and "logoType" until they are animated.
The core animation logic is handled by JavaScript using the GreenSock Animation Platform (GSAP) and several of its plugins. A main GSAP timeline (tl) orchestrates the entire sequence. It begins by drawing a masked arc using DrawSVGPlugin and simultaneously animates a "comet" (#comet) along this path using MotionPathPlugin.
.fromTo('.arcMask', {
drawSVG: '0% 0%'
}, {
duration: 1.5,
drawSVG: '0% 96%',
ease: 'power1.inOut'
})
.to('#comet', {
duration: 1.5,
motionPath: {
path: '.arcMask',
align: ".arcMask",
alignOrigin: [0.5, 0.5],
end: 0.98
},
ease: 'power1.inOut'
}, 0)This snippet shows how the arc is drawn and the comet follows its path at the same time.
Following the comet, a "plus" symbol (#plus) appears and smoothly transforms into a more intricate shape (#plusEnd) using MorphSVGPlugin, while the "Disney" logo text (#logoType) fades in.
.to('#plus', {
duration: 1.2,
morphSVG: {
shape: '#plusEnd'
},
ease: 'elastic.out(1, 0.7)'
}, '-=1')
.to('#logoType', {
duration: 1.2,
opacity: 1,
ease: 'power2.out'
},'-=1')Here, the plus morphs into a new shape, and the logoType fades in simultaneously.
Concurrently, a separate timeline (popTl) animates numerous small stars and dots (#allStars use) bursting outwards from a central point with physics-based motion, thanks to Physics2DPlugin.
.fromTo(target, {
x: 985,
y: 430,
rotation: -180,
scale: 2
}, {
duration: 1.2,
rotation: 360,
physics2D: {
velocity: 160,
angle: 180,
gravity: 50
},
scale: 0,
ease: 'power1.out'
})This code snippet demonstrates how individual stars are animated with physics properties like velocity and gravity.
Finally, the entire animation group fades out, and the main timeline's onComplete callback ensures the sequence restarts, creating a continuous loop.
Have a question about how this project works? Ask below and get an answer based on the project code.
Structured technical breakdown for beginners. Anyone can generate or regenerate; your version is saved in this browser (local storage).
No breakdown yet. Generate one to see a file-by-file explanation. Your version is saved in this browser.
Comments
No comments yet. Sign in to leave a comment.
Sign in to leave a comment.