Quaker Oats

Quaker Oats

Interactive ad for Quaker Oats with a 3-layer parallax food waterfall animation, iScroll-powered product gallery, and split desktop/mobile architecture.

Overview

FormatPage Grabber
PlatformDesktop + Mobile
EngineiScroll v4.2 + GreenSock
AgencyUndertone

Full-screen ad for Quaker Oats that opens with a cinematic food waterfall: ingredients cascading across three parallax layers into a bowl. topFoodLayer, midFoodLayer, and backFoodLayer animate downward at staggered rates (1.8x, 1.9x, 1.95x of base duration) using TweenMax, with a CSS clip:rect() mask on the foodWaterfall container that shrinks upward to create the illusion of ingredients falling into a bowl. After the intro, users browse a 4-product gallery (Apple Walnut, Summer Berry, Peach Almond, Blueberry Hazelnut) with per-product detail panels and "Learn More" CTAs.

The desktop and mobile experiences are architecturally separate — three completely separate DOM trees (contentBodyDesktop, contentBodyTablet, contentBodyMobile), each with its own carousel logic, arrow handlers, and product arrays.

Context

The food waterfall was the hardest part of this build. The three food layers needed to cascade at slightly different speeds to create depth, but the masking was the real challenge — I animated clip:rect() coordinates via TweenMax to shrink the visible region of the waterfall container upward, making it look like the ingredients were falling into the bowl rather than just sliding down the screen. The percentChanged/invertPercentChanged scaling system was my solution for making the intro animation work at any viewport size: it calculates a scale factor from the viewport dimensions, applies it to the intro container, then inverts it for child element positioning so everything stays proportionally correct. Android got a separate code path for the carousel transitions — TweenMax opacity crossfades on iOS, direct CSS property swaps on Android, because the older Android WebViews at the time couldn't handle concurrent opacity tweens without stuttering.

How It Works

~3s

Waterfall

Three parallax food layers animate downward at different rates: almonds, berries, and oat flakes cascade past a centered bowl. Spoon animates in from below.

~2s

Intro Copy

Headline copy reveals in sequence (copy0, copy1). Bowl and food layers settle. Transition to product gallery.

Interactive

Browse

Desktop: left/right arrows cycle through 4 products. Product image on left, title and CTA on right. Mobile: iScroll-powered touch gallery with swipe navigation.

Click-through

Learn More

Per-product CTA buttons deep link to product pages with unique click IDs per flavor.

Engineering

3-Layer Food Waterfall

topFoodLayer, midFoodLayer, backFoodLayer animate at staggered rates using GreenSock, creating a parallax cascade effect. Each layer has independently positioned food elements.

iScroll Touch Engine

iScroll v4.2 handles touch scrolling within the ad container. Native scroll is disabled (ad iframes block it), so iScroll provides momentum-based scrolling with CSS transform positioning.

Split Gallery Architecture

contentBodyDesktop and contentBodyMobile are separate DOM trees. Desktop uses a left-content (product images) + right-content (info panel) layout with arrow navigation. Mobile uses a vertical scroll layout.

Per-Product Click Tracking

Each flavor has its own data-utclickid (2-5) and CTA button, enabling per-product click attribution in campaign analytics.

Engineering Decisions

A static bowl of oatmeal is forgettable. Cascading ingredients at different depths creates movement and appetite appeal: the food feels alive and fresh.

Ad iframes don't support native scrolling reliably. iScroll takes over touch events and translates them into CSS transform-based position changes, giving smooth momentum within the container.

Desktop uses a side-by-side product + info layout, mobile uses stacked cards. These are different interaction models, not just different sizes: sharing DOM would create conditional complexity.

Quaker wanted to measure which flavors drove the most interest. 4 unique click IDs let them correlate ad engagement to product page visits per SKU.

Project stack

  • HTML5
  • CSS3
  • JavaScript

More projects