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

更新於 發佈於 閱讀時間約 4 分鐘
raw-image
raw-image
raw-image

Horizontal Scrolling Theater / GitHub

簡介

以前就想過要做一個展示電影的頁面,這次使用 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 部署網站
留言
avatar-img
留言分享你的想法!
avatar-img
Ray C的沙龍
37會員
31內容數
短篇奇幻作品將不定期更新。
Ray C的沙龍的其他內容
2023/01/14
在 Instagram 看到有人分享在日本操作機器、製作寶可夢客製化衣服的貼文,聯想起先前在網上閱讀到關於 Pokémon API 的文章,一時興起也使用 PokeAPI 仿刻貼文中機器的操作介面。然而在開發過程中,發現連續抓取 905 份寶可夢資料...
Thumbnail
2023/01/14
在 Instagram 看到有人分享在日本操作機器、製作寶可夢客製化衣服的貼文,聯想起先前在網上閱讀到關於 Pokémon API 的文章,一時興起也使用 PokeAPI 仿刻貼文中機器的操作介面。然而在開發過程中,發現連續抓取 905 份寶可夢資料...
Thumbnail
2022/04/03
去年看到 Astro 剛發布時所宣稱的「用較少的 JavaScript 打造極速網站」就對這樣的框架產生興趣,那時雖然也試玩了一下,不過因為遇到一些開發初期的 bug 放棄研究。直到近期拿過去使用 petite-vue 開發的專案 — HTML Reserved Colors 來透過 Astr...
Thumbnail
2022/04/03
去年看到 Astro 剛發布時所宣稱的「用較少的 JavaScript 打造極速網站」就對這樣的框架產生興趣,那時雖然也試玩了一下,不過因為遇到一些開發初期的 bug 放棄研究。直到近期拿過去使用 petite-vue 開發的專案 — HTML Reserved Colors 來透過 Astr...
Thumbnail
2022/03/25
2021 年可以說是 NFT 大爆發的一年了,除了名人相繼創立自己的 NFT,也有各式各樣的商業模式和額外賦能不停的被開發出來;像是主打邊玩邊賺的 (Play-to-Earn,P2E) GameFi 項目「Axie Infinity」、擁有即可兌換一天一碗且連續七天雞肉飯的「元宇宙第一雞肉飯」...
Thumbnail
2022/03/25
2021 年可以說是 NFT 大爆發的一年了,除了名人相繼創立自己的 NFT,也有各式各樣的商業模式和額外賦能不停的被開發出來;像是主打邊玩邊賺的 (Play-to-Earn,P2E) GameFi 項目「Axie Infinity」、擁有即可兌換一天一碗且連續七天雞肉飯的「元宇宙第一雞肉飯」...
Thumbnail
看更多
你可能也想看
Thumbnail
TOMICA第一波推出吉伊卡哇聯名小車車的時候馬上就被搶購一空,一直很扼腕當時沒有趕緊入手。前陣子閒來無事逛蝦皮,突然發現幾家商場都又開始重新上架,價格也都回到正常水準,估計是官方又再補了一批貨,想都沒想就立刻下單! 同文也跟大家分享近期蝦皮購物紀錄、好用推薦、蝦皮分潤計畫的聯盟行銷!
Thumbnail
TOMICA第一波推出吉伊卡哇聯名小車車的時候馬上就被搶購一空,一直很扼腕當時沒有趕緊入手。前陣子閒來無事逛蝦皮,突然發現幾家商場都又開始重新上架,價格也都回到正常水準,估計是官方又再補了一批貨,想都沒想就立刻下單! 同文也跟大家分享近期蝦皮購物紀錄、好用推薦、蝦皮分潤計畫的聯盟行銷!
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
本文分享了一場關於好萊塢分鏡技術的付費講座以及相關的動畫課程信息。雖然講座內容偏重觀念分享,而非技術細節,但仍然提供了許多有趣的故事與見解。此外,文章介紹了高雄出現的新動畫教學單位「夢想方舟」,提供免費的動畫及遊戲課程,並包含報名連結。對於喜歡影像創作的讀者,此內容特別有參考價值。
Thumbnail
本文分享了一場關於好萊塢分鏡技術的付費講座以及相關的動畫課程信息。雖然講座內容偏重觀念分享,而非技術細節,但仍然提供了許多有趣的故事與見解。此外,文章介紹了高雄出現的新動畫教學單位「夢想方舟」,提供免費的動畫及遊戲課程,並包含報名連結。對於喜歡影像創作的讀者,此內容特別有參考價值。
Thumbnail
移開眼花撩亂的畫面和設定,電影原本的主軸是什麼?
Thumbnail
移開眼花撩亂的畫面和設定,電影原本的主軸是什麼?
Thumbnail
第一次系列的第二彈,我來到電影院了。之前從來沒有在國外走進電影院過,想去瞧瞧跟台灣有甚麼不同,也剛好最近有想看的電影,就決定來趟電影院之旅。
Thumbnail
第一次系列的第二彈,我來到電影院了。之前從來沒有在國外走進電影院過,想去瞧瞧跟台灣有甚麼不同,也剛好最近有想看的電影,就決定來趟電影院之旅。
Thumbnail
大家好,我們是《茶色Tearotic》,來自台灣的成人片團隊,希望能用呈現以可愛、安心、簡單、溫馨的形象,將生活日常的幻想轉變為精緻有趣的內容,我們的觀眾一直都很好奇在台灣的AV產業狀況,我們一系列的【色色解密】就會跟大家從無到有實際來走一遍,一起來開箱AV產業的狀況,本篇要來開箱AV導演的工作!
Thumbnail
大家好,我們是《茶色Tearotic》,來自台灣的成人片團隊,希望能用呈現以可愛、安心、簡單、溫馨的形象,將生活日常的幻想轉變為精緻有趣的內容,我們的觀眾一直都很好奇在台灣的AV產業狀況,我們一系列的【色色解密】就會跟大家從無到有實際來走一遍,一起來開箱AV產業的狀況,本篇要來開箱AV導演的工作!
Thumbnail
拍電影的人是瘋子,電影是愛的結晶。訂閱「航電影的海」沙龍,即可獲得「本月選片」獨家影評文章。
Thumbnail
拍電影的人是瘋子,電影是愛的結晶。訂閱「航電影的海」沙龍,即可獲得「本月選片」獨家影評文章。
Thumbnail
本篇主要分享自己看過、覺得不錯的片單,包含電影、紀錄片、影集、動畫、遊戲等。不知道讀者們的喜好和我是否相同?
Thumbnail
本篇主要分享自己看過、覺得不錯的片單,包含電影、紀錄片、影集、動畫、遊戲等。不知道讀者們的喜好和我是否相同?
Thumbnail
串流大戰似乎顛覆了許多觀眾的觀影觀念,許多熱門電影如今上架串流平台的速度更快,不用出門,在串流平台上就有看不完的電影;而也仍然有許多觀眾,享受在電影院觀看大銀幕的戲院體驗。今天要來介紹一個特別的「線上+線下」觀影優惠方案:讓你到戲院不到一百塊就能看電影+ 上萬小時電影看到飽的串流平台方案。
Thumbnail
串流大戰似乎顛覆了許多觀眾的觀影觀念,許多熱門電影如今上架串流平台的速度更快,不用出門,在串流平台上就有看不完的電影;而也仍然有許多觀眾,享受在電影院觀看大銀幕的戲院體驗。今天要來介紹一個特別的「線上+線下」觀影優惠方案:讓你到戲院不到一百塊就能看電影+ 上萬小時電影看到飽的串流平台方案。
Thumbnail
理想中的看電影,是一趟又一趟的體驗過程,是查時刻表、買張票、進影廳找熟悉的位子,是在這樣的黑盒子裡,才能開啓所有感官,專注地把自己丟進角色的世界中,獲得各種濃郁的能量與激盪,才能在離開影廳時帶著深刻的悸動,寫下真切的文字。
Thumbnail
理想中的看電影,是一趟又一趟的體驗過程,是查時刻表、買張票、進影廳找熟悉的位子,是在這樣的黑盒子裡,才能開啓所有感官,專注地把自己丟進角色的世界中,獲得各種濃郁的能量與激盪,才能在離開影廳時帶著深刻的悸動,寫下真切的文字。
Thumbnail
以前就想過要做一個展示電影的頁面,這次使用 Vue 3 搭配 GSAP,並結合自己收藏的 46 部藍光電影所做成的 API 做串接,達成能夠橫向捲動的電影購物頁面。實作上,除了藉由 CSS 屬性 `relative` 搭配 GSAP 來調整元素的 `left` 值來實現橫向捲動的功能,另外在點...
Thumbnail
以前就想過要做一個展示電影的頁面,這次使用 Vue 3 搭配 GSAP,並結合自己收藏的 46 部藍光電影所做成的 API 做串接,達成能夠橫向捲動的電影購物頁面。實作上,除了藉由 CSS 屬性 `relative` 搭配 GSAP 來調整元素的 `left` 值來實現橫向捲動的功能,另外在點...
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News