apple product on scroll effects

position: sticky clip-path: inset scroll requestAnimationFrame apple gogoro

參考以下頁面仿製,並借用部份素材(如有不當請告知 🙇‍♂️)
https://www.apple.com/tw/iphone-se/
https://www.gogoro.com/tw/smartscooter/viva/

商品具多顏色選擇時,使用這個呈現方式視覺上和使用者體驗都不錯
除了讓畫面簡單乾淨,也能帶上產品大標做為特色說明~

apple new iphone se color
如上 tag 所示~,這個特效需要用到下面這些功能

先看看下面的效果~

簡單萊姆灰

簡單萊姆灰
薄荷藍滿街跑
簡單萊姆灰
薄荷藍滿街跑
石榴紅超特別
checkout it now!! 🛵

以上
這樣的效果需要多個容器來組合完成
html architecture
由外至內逐一說明~

架構透視圖
再接著看下一個範例~

黑色買不起

黑色買不起 白色沒錢買

黑色買不起 白色沒錢買
紅色貴33

並沒有將所有部份像 apple 官網一樣處理的很好,部份畫面上的小問題尚待解決
有另外處理 screen notch 問題(詳細影響請看註 Notch)
notch effect
未去除 notch 時頭尾有空白區域
has notch
去除 notch 後令圖片滿版
without notch

簡單在 html head meta content 內加入 viewport-fit=cover


 <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
            

另外還需要處理 padding safe area,避免文字被手機裝置 notch 蓋住


    padding:
        max(calc(env(safe-area-inset-top) + 10px), 20px)
        max(calc(env(safe-area-inset-right) + 1%), 3%)
        max(calc(env(safe-area-inset-bottom) + 10px), 20px)
        max(calc(env(safe-area-inset-left) + 1%), 3%);
    

上面 padding 因網頁設計和調整個人喜歡做調整,所以用到 calc() 和 max()

當然這樣的效果也有缺點,像是效能問題和 `link anchor`
如果使用者第一次進入這頁並使用 `#notch`,可以看到畫面捲動時的奇怪效果
UX 上不是那麼好

"The Notch" and CSS: env safe-area-inset
https://www.codewall.co.uk/css-env-variables-for-todays-edge-screen-devices/
https://css-tricks.com/the-notch-and-css/
https://webkit.org/blog/7929/designing-websites-for-iphone-x/