捲動動畫:用 animation-timeline 取代 IntersectionObserver
JavaScript 視差效果總是看起來有點不對——有點脫節,好像圖層在頁面後面半幀漂浮。這不是草率的程式碼。這是因為捲動事件在瀏覽器已經繪製捲動之後才到達 JavaScript。瀏覽器曾經解決了這個問題——當它將粘性標頭變成 position: sticky 時。Scroll-driven animations 是同樣的手法,一次應用於所有捲動綁定的效果。
JavaScript 視差效果總是看起來有點不對——有點脫節,好像圖層在頁面後面半幀漂浮。這不是草率的程式碼。這是因為捲動事件在瀏覽器已經繪製捲動之後才到達 JavaScript。瀏覽器曾經解決了這個問題——當它將粘性標頭變成 position: sticky 時。Scroll-driven animations 是同樣的手法,一次應用於所有捲動綁定的效果。
在無障礙設計那篇文章裡,一個用 display:none 隱藏、卻依然存在於可訪問性樹裡的 modal,正是從零開始用 div 手寫 modal 會出現的典型錯誤。真正該問的問題是:一開始為甚麼要從零開始做?本文探討原生 <dialog> 和 popover 屬性能免費送你甚麼——top layer、焦點陷阱、light dismiss——以及這兩個機制之間的分別大到甚麼程度,混用它們是通往不可訪問介面最簡單的一條路。
正確的 HTML 只是起點。本文深入講解可訪問性樹的實際運作方式、ARIA 為何往往弊多於利,並與你一起實作一個真正可用的手風琴組件、一個即時通知區域,以及 Next.js 的焦點處理。