Topic
JavaScript, DOM & Browser Animation
Buttons that die without an error, delegated handlers broken by one stopPropagation, a ScrollTrigger that jitters only on phones. This cluster covers JavaScript failing silently in the browser: events and the DOM, drifting API contracts, misbehaving third-party SDKs, plus GSAP/Lenis and iOS Safari quirks. Read this when the code is 'correct' but nothing happens on screen.
52 articles
Start here
Features That Are “Done” but Silently Dead: JS↔REST Contract Drift
-
Clicking a Photo Locks Scroll But the Screen Stays Empty? JS Toggled a Class, CSS Revealed on an Attribute
September 11, 2026 -
38px Black Bars Baked into the New Hero Frame PNGs? `cropdetect` Measured Them, Then the Crop Rode Along with the WebP Conversion
September 3, 2026 -
A Loose Zone plus `onToggle isActive`: The ScrollTrigger Rule That Outlived Its Bug Report
August 28, 2026 -
`browser_click` Timing Out on `waiting for stable`? Reveal Animations Mean the Element Never Stops Moving
August 28, 2026 -
Rotating Word Leaves a Ghost Strip While You Scroll? The Container Is 84px, the Line Box Is 74.4px
August 25, 2026 -
GSAP Layer Lands in the Wrong Place After a `yPercent` Tween? Your CSS `translateY(102%)` Was Parsed as a Separate Pixel `y`
August 24, 2026 -
Video Only Shows Its Poster Frame? The Element Sits Off-Screen at First Paint
August 19, 2026 -
Last Card Cropped at the End of a Horizontal Scroll Lock? `scrollWidth - clientWidth` Drops the Right Padding
August 17, 2026 -
CSS Marquee Looping With a Huge Empty Gap? `translateX(-50%)` Needs a Track Twice the Viewport
August 16, 2026 -
Text Appears, Hides, Then Animates In Again? A `force-reveal` Safety Net That Rescued Too Much
August 14, 2026 -
GSAP Tween Ignored and a "Ghost" Element Left Behind? `animation: infinite` Outranks Inline Style
August 13, 2026 -
Pinned ScrollTrigger Cards Covering Your CTA? Blame `end: "bottom top"`
August 13, 2026 -
Shared Element Morph Invisible on Open? The Clone Inherits the Overlay's `opacity` Fade
August 12, 2026 -
Drawer Close Animation Never Plays? `visibility: hidden` Snaps Back the Instant the Class Comes Off
August 11, 2026 -
`autoplay: false` Then `.play()` in anime.js v4? The Animation Snaps to Its End State With No Tween
August 8, 2026 -
`is-open` Stuck From Page Load? GSAP Timeline `.add()` Callbacks Also Fire During ScrollTrigger Refresh
August 8, 2026 -
Section-to-Section Gradient Banding and an Obvious Fake Scrim? A Scrim on Top of the Photo, 4 Linear Stops, and No Colour Checkpoint
August 7, 2026 -
GSAP Tween Overwritten by `requestAnimationFrame` Every Frame in a Three.js Gallery? The Render Loop Owns `position.x`
August 6, 2026 -
`abort()` Fired but No `AbortError`? A Proxy-Buffered Compressed Body Never Gets Cancelled
August 5, 2026 -
White Text Vanishes on a Light Background While Scrolling? Hardcoded Text Color Desyncs From the Morphing Background
July 31, 2026 -
GSAP Flip `absolute:true` Collapsed My Grid and Tiles Overlapped the Next Section?
July 30, 2026 -
`--site-colour` Stuck Dark After a Pinned Section? Pinning Shifts ScrollTrigger Coordinates
July 30, 2026 -
Background `<video>` Flashes Black Repeatedly in Chrome/Brave on Windows? DirectComposition Overlay Plane + Loop Encode
July 30, 2026 -
The Seam Between a Hero `<video>` and the Photo Below Never Lines Up? Video Frames Are a Function of Time, Not Scroll
July 29, 2026 -
White Hero Text Vanishes on Fast Scroll-Up? `onEnter`/`onLeave` ScrollTrigger Callbacks Race and Strip `scene-dark`
July 29, 2026 -
Sections Permanently Hidden After `gsap.from()` + ScrollTrigger? The Inline `opacity:0` That Never Gets Cleared
July 26, 2026 -
Reveal Text Stuck at `opacity: 0.25`? Your i18n Engine Re-applies `innerHTML` and Detaches the Animated Nodes
July 26, 2026 -
`transform` Silently Dropped by the Browser? `calc()` Still References a Renamed CSS Variable
July 25, 2026 -
Booking Badge Stuck on Processing? `closest()` Returned the Button, Not the Card
July 23, 2026 -
HTML5 `pattern` Validation Breaks in Chrome with a `SyntaxError`? The `v` Flag Requires Escaping `(`
July 23, 2026 -
`IntersectionObserver` Never Fires on a 350vh Sticky Section? The Threshold Is Mathematically Impossible
July 21, 2026 -
Square Wallet Button Keeps Coming Back Despite `display:none`? The SDK Injects It Late, Fight It With MutationObserver
July 17, 2026 -
`ctx.drawImage` Throws `InvalidStateError` in Production but Not Locally? One Frame Is a 404
July 16, 2026 -
Custom SplitText Renders a Literal `&` On Screen? You Are Reading `innerHTML`
July 16, 2026 -
View Transitions API Flashes and Animates on Every Back Button? The Opt-in Meta Hits Every Navigation
July 16, 2026 -
Inline Video Won't Autoplay on iPhone Safari? H.264 High Profile Is Rejected and the `autoplay` Attribute Is Blocked
July 13, 2026 -
SplitText Breaking Lines in the Wrong Places? It Split Before the Web Font Finished Loading
July 12, 2026 -
Canvas Hero Pixelated on Real Phones? The Tier Picker Reads `clientWidth`, Not Device Pixels
July 10, 2026 -
ScrollTrigger `pin: true` + `scrub` Section Jitters on Mobile but Desktop Is Silky? Lenis and the URL Bar Are Fighting Over Scroll
July 9, 2026 -
Card Stuck in Its `:hover` State on a Playwright Mobile Viewport? That's a Phantom Hover From the Virtual Mouse, Not a Site Bug
July 9, 2026 -
Animations Look Choppy in Playwright? rAF Gets Throttled to Roughly 1 fps in an Occluded Window
July 9, 2026 -
`new FormData(...)` Throws “not of type HTMLFormElement”: Your Selector Grabbed the Wrapper DIV, Not the FORM
July 6, 2026 -
Refund Fails With 422 “amount is required” Though the Docs Say It's Optional, Always Send `amount.value`
July 6, 2026 -
A Google Sign-In That Doesn't Verify the JWT Signature = Auth Bypass: Anyone Can Claim to Be Anyone
July 6, 2026 -
Buttons “Dead” Only on the Homepage: A Global Click Handler in a JS File Not Enqueued There
July 5, 2026 -
Clicking a Date Submits the Whole Form? Inside a `<form>`, a `<button>` With No `type` Defaults to Submit
July 1, 2026 -
Lenis in the <head> Threw 'document.body is null' and Blocked Render, Move It to the Footer
June 25, 2026 -
An Inline onclick stopPropagation Silently Broke Every Delegated Handler
June 22, 2026 -
Scroll-Reveal Content Stays Invisible When IntersectionObserver Never Fires
June 22, 2026 -
wp_localize_script Overwrites the Global (It Doesn't Merge), How It Wiped My Search Index
June 19, 2026 -
ScrollTrigger Below the Hero Breaks After Assets Load? GSAP pin vs CSS sticky
June 18, 2026