Horizontal Scrolling Theater|互動效果豐富的橫向捲動電影院

閱讀時間約 3 分鐘

簡介

以前就想過要做一個展示電影的頁面,這次使用 Vue 3 搭配 GSAP,並結合自己收藏的 46 部藍光電影所做成的 API 做串接,達成能夠橫向捲動的電影購物頁面。實作上,除了藉由 CSS 屬性 `relative` 搭配 GSAP 來調整元素的 `left` 值來實現橫向捲動的功能,另外在點擊「加入購物車」按鈕時,透過抓取當下電影封面位置和設計移動軌跡,做出漂亮的放入購物車動畫,以及使用 Vue 的 `watch` API 監視購物車資料,從購物車新增或移除電影時,加上購物車圖示縮小 20% 的反饋;這些在開發過程中不斷優化的互動效果,在最後整合到一起時,產生了驚艷的使用體驗。

外觀與互動設計

  • 加入水平捲動功能,並在載入網頁時以動畫展示作為操作提示
  • 使用淺灰色作為電影卡片底色,持久凝視不眩光
  • 對電影標題、分類和敘述分別套用不同的文字大小、字重 (font weight) 和顏色,做出視覺層次 (visual hierarchy)
  • 在電影卡片封面外加上微陰影,並在鼠標碰觸卡片時,對卡片本身和卡片封面做出不同的上移距離,達到微 3D 效果
  • 將電影加入到購物車時呈現過場動畫,以及對按鈕套用「已加入購物車」的內容和樣式,讓使用體驗更加直覺順暢
  • 使用 ionicons 的購物車 icon,並且在開、關購物車頁面時,切換線條或填充的版本;以及在購物車加入或移除電影時,觸發購物車 icon 縮小 20% 的互動效果
  • 從購物車加入或移除電影時,對總金額數字做實時加總的跳動效果
  • 開啟購物車時,虛化、暗化背景,添加層次和立體感;而在購物車為空時,另外加上倒數計時器,1.6 秒後自動回到主畫面

開發紀錄

  • 將自己收藏的 46 部藍光電影製作成 JSON API
  • 使用安裝套件更為快速的套件管理系統 pnpm
  • 使用基於 Webpack 的 Vue CLI 做零配置原型建構,透過分拆 Components 進行模組化開發,以及受文章「Do you really need Vuex?」啟發,使用更加優雅的 Composition API 達到類似於 Vuex store 的跨元件狀態共享
  • 引入 normalize.css 達到跨瀏覽器的樣式重置、使用預處理器 Sass 開發外觀,以及透過 Scoped CSS 達到互不干擾的樣式封裝
  • 將鼠標碰觸互動效果以觸控設備為條件做分離,優化不同裝置上的使用體驗
  • 使用 Vue 的 `watch` API 監視金額加總,和結合 `window.requestAnimationFrame()` 方法,達成在新增或移除電影時,做出實時金額加總的功能 (跳動數字)
  • 借助 GSAP 之力:加上綁定捲動事件和設定元素 `relative` 定位,透過改變 `left` 值實現橫向捲動功能;透過點擊「加入購物車」按鈕後,取得當下電影封面位置和設計移動軌跡,達成漂亮的加入購物車動畫;使用 Vue 的 `watch` API 監視購物車資料,從購物車新增或移除電影、導致資料更新時,觸發購物車 icon 縮小 20% 的互動效果
  • 在加入電影到購物車、從購物車移除電影時,使用變數作為開關,阻擋 GSAP 動畫期間的複數操作,確保互動效果始終如期運行
  • 使用 Netlify 部署網站
為什麼會看到廣告
37會員
31內容數
短篇奇幻作品將不定期更新。
留言0
查看全部
發表第一個留言支持創作者!
Ray C的沙龍 的其他內容
我始終認為,設計與開發是一體兩面,設計本是為開發而存在,開發也是為了完成設計,兩者相輔相成、互相影響。因此在網站首頁中,使用建築圖與對設計和開發的解釋,表現自己在前端學習上,執著於兼顧清晰的設計與流暢的開發;網站設計上,我以報紙風格做為基礎,使用噪點填充背景以實現擬似紙張的質感,加入平滑滾動與...
2020 下半年在全世界仍受到冠狀病毒肆虐期間,吉卜力工作室在官網四次公開合計 24 部動畫作品、共 1,178 張高畫質劇照,表示在未觸法的情形之下可自由下載使用,並且還會持續釋出過去動畫作品的劇照。由於官網的劇照呈現方式不太友好,也未在移動裝置上做排版優化,加上分批公開的作品劇照未整合在一...
這次的專案為六角學院在 2021 年疫情期間舉辦的「程式體驗營」最終作業,其中使用了最近接觸的 Vite 作為專案開發和打包的工具,以及因為對 Utility-First CSS 頗感興趣,將 Tailwind 納入專案並初次使用它做開發...
我並非這美術設計的原創,不過得益於 Instagram 上 @uixperience 的作品參考,才實現了這優雅計算機的外觀。在互動的部分,我讓按鍵在按下時減少陰影,並加深按鍵背景的顏色,這樣就像是真的被按了下去一樣;另外,在顯示計算結果的部分,透過 JS 增減 CSS class 的方式隨時...
一開始的版本是和 Todo MVC 類似的簡易待辦事項清單,由於本身的使用需求,不斷調整和優化 Todo 清單的外觀與功能,如使用 SortableJS 做出拖拉排序、結合 LocalStorage 做出儲存機制、Markdown link 語法的支持,以及對 XSS 跨網站指令程式碼的防禦處...
我始終認為,設計與開發是一體兩面,設計本是為開發而存在,開發也是為了完成設計,兩者相輔相成、互相影響。因此在網站首頁中,使用建築圖與對設計和開發的解釋,表現自己在前端學習上,執著於兼顧清晰的設計與流暢的開發;網站設計上,我以報紙風格做為基礎,使用噪點填充背景以實現擬似紙張的質感,加入平滑滾動與...
2020 下半年在全世界仍受到冠狀病毒肆虐期間,吉卜力工作室在官網四次公開合計 24 部動畫作品、共 1,178 張高畫質劇照,表示在未觸法的情形之下可自由下載使用,並且還會持續釋出過去動畫作品的劇照。由於官網的劇照呈現方式不太友好,也未在移動裝置上做排版優化,加上分批公開的作品劇照未整合在一...
這次的專案為六角學院在 2021 年疫情期間舉辦的「程式體驗營」最終作業,其中使用了最近接觸的 Vite 作為專案開發和打包的工具,以及因為對 Utility-First CSS 頗感興趣,將 Tailwind 納入專案並初次使用它做開發...
我並非這美術設計的原創,不過得益於 Instagram 上 @uixperience 的作品參考,才實現了這優雅計算機的外觀。在互動的部分,我讓按鍵在按下時減少陰影,並加深按鍵背景的顏色,這樣就像是真的被按了下去一樣;另外,在顯示計算結果的部分,透過 JS 增減 CSS class 的方式隨時...
一開始的版本是和 Todo MVC 類似的簡易待辦事項清單,由於本身的使用需求,不斷調整和優化 Todo 清單的外觀與功能,如使用 SortableJS 做出拖拉排序、結合 LocalStorage 做出儲存機制、Markdown link 語法的支持,以及對 XSS 跨網站指令程式碼的防禦處...
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
Cornwall康沃爾是一個受英國人喜愛的度假勝地,但在冬天遊覽則是一個避開人潮的好選擇。
Thumbnail
非常喜愛紐約百老匯及倫敦西區劇院音樂劇的我,這次在倫敦自助旅遊時竟親臨莎翁時代露天劇院現場演出,讓我有be on cloud nine(如上九重天的快樂)。自助旅遊探索London時,買一張二樓有座位的Shakespeare's Globe Theatre票,親自體驗難忘莎翁歷久彌新的戲劇。
Thumbnail
網站設計不再僅僅是靜態的展示,而是越來越多地引入動態網頁效果來提供更豐富和引人注目的使用者體驗。本文將解釋如何使用CSS轉換、過渡和動畫效果來創建動態網頁元素,並介紹一些常用的JavaScript庫和框架(如jQuery和GSAP)來實現更複雜的動態效果。
Thumbnail
▌行程名稱 *越南下龍灣蘭哈灣5星級遊輪|兩天一夜行程|Le Theatre Cruise|含河內三十六古街區域高級12人座車子接送 訂購連結 : 越南下龍灣蘭哈灣5星級遊輪|兩天一夜行程|Le Theatre Cruise|含河內三十六古街區域高級12人座車子接送 本文僅做分享,實際遊程內
Thumbnail
環鍛製程中包含徑向變形和軸向變形,但一般主要是徑向變形,且需要配合胚料預形的前置作業,包括下料、加熱、鍛粗、沖孔。預形中空胚的尺寸和形狀是獲得合格工件的重要因素之一,常用落槌壓力機來滿足環鍛工藝所需要的軸向變形與中孔特徵。 環鍛機上一般有四種輥輪:從動輪2、控制輪3、主動輪4。將加熱好的環形中空胚料
Thumbnail
她的鏡頭長年在香港,儘管待在別處拍戲,也總能在她的電影中看見香港精神,堅毅、不願屈撓、矛盾、漂泊、熱情…又甜又鹹的港味,很簡單的幾個配菜放在一起,濃郁的讓人流連,那是她的電影,是她這個人,也是香港。
Thumbnail
臨近仁愛圓環的Rolling Eyes是間極小的麵包烘焙坊,販售麵包以外帶為主,附加提供少量的座位,也可以選擇點了麵包就直接坐下來內用;主理人有兩位,烘焙王負責製作麵包,闆娘則打理飲品跟招呼客人,一早來總是可以看到製作麵包的過程,倆人工作時的默契像是有特定的節奏,店門外潔白牆面掛著翻白眼女孩Logo
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
Cornwall康沃爾是一個受英國人喜愛的度假勝地,但在冬天遊覽則是一個避開人潮的好選擇。
Thumbnail
非常喜愛紐約百老匯及倫敦西區劇院音樂劇的我,這次在倫敦自助旅遊時竟親臨莎翁時代露天劇院現場演出,讓我有be on cloud nine(如上九重天的快樂)。自助旅遊探索London時,買一張二樓有座位的Shakespeare's Globe Theatre票,親自體驗難忘莎翁歷久彌新的戲劇。
Thumbnail
網站設計不再僅僅是靜態的展示,而是越來越多地引入動態網頁效果來提供更豐富和引人注目的使用者體驗。本文將解釋如何使用CSS轉換、過渡和動畫效果來創建動態網頁元素,並介紹一些常用的JavaScript庫和框架(如jQuery和GSAP)來實現更複雜的動態效果。
Thumbnail
▌行程名稱 *越南下龍灣蘭哈灣5星級遊輪|兩天一夜行程|Le Theatre Cruise|含河內三十六古街區域高級12人座車子接送 訂購連結 : 越南下龍灣蘭哈灣5星級遊輪|兩天一夜行程|Le Theatre Cruise|含河內三十六古街區域高級12人座車子接送 本文僅做分享,實際遊程內
Thumbnail
環鍛製程中包含徑向變形和軸向變形,但一般主要是徑向變形,且需要配合胚料預形的前置作業,包括下料、加熱、鍛粗、沖孔。預形中空胚的尺寸和形狀是獲得合格工件的重要因素之一,常用落槌壓力機來滿足環鍛工藝所需要的軸向變形與中孔特徵。 環鍛機上一般有四種輥輪:從動輪2、控制輪3、主動輪4。將加熱好的環形中空胚料
Thumbnail
她的鏡頭長年在香港,儘管待在別處拍戲,也總能在她的電影中看見香港精神,堅毅、不願屈撓、矛盾、漂泊、熱情…又甜又鹹的港味,很簡單的幾個配菜放在一起,濃郁的讓人流連,那是她的電影,是她這個人,也是香港。
Thumbnail
臨近仁愛圓環的Rolling Eyes是間極小的麵包烘焙坊,販售麵包以外帶為主,附加提供少量的座位,也可以選擇點了麵包就直接坐下來內用;主理人有兩位,烘焙王負責製作麵包,闆娘則打理飲品跟招呼客人,一早來總是可以看到製作麵包的過程,倆人工作時的默契像是有特定的節奏,店門外潔白牆面掛著翻白眼女孩Logo