# 第四週 - CSS3 + JS 網頁動畫效果 * [第一批每日打卡 130 位即將誕生!](https://ahmomoz.github.io/hex2025-EduTrack/check-in-progress/) * [心得牆開放嘍!歡迎分享你的回饋,你的鼓勵是我們最大的進步力🙌](https://rpg.hexschool.com/#/training/12062817613289895665/board) ## 抽書活動 * 1372000459862179940 * 1372362847782310009 * 1372725235543179390 * 1373087623903707256 * 1373450011853066290 * 1373812399223738540 * 1374174787416625172 回饋串 * 小組任務 ## animation 1. [基本範例](https://codepen.io/liao/pen/JjYwNVW?editors=1100) 2. [移動速率](https://codepen.io/liao/pen/gOaZWyj?editors=1100) 3. [完整解析 CSS 動畫 ( CSS Animation )](https://www.oxxostudio.tw/articles/201803/css-animation.html) 4. [animation-fill-mode](https://www.w3cplus.com/css3/understanding-css-animation-fill-mode-property.html) a. forwards:停留在最後一個位置 b. backrawds:回到原本位置 c. both 擁有上面兩個的功能 5. [animate css](https://animate.style/) 6. 本週可以做到的範例:[OPPO 官網](https://www.oppo.com/cn/smartphones/series-find-x/find-x8-ultra/) ## transform 1. [文件](https://www.w3schools.com/cssref/css3_pr_transform.asp) 2. [基本範例](https://codepen.io/liao/pen/VwvqWZQ) ## opacity 1. [基本範例](https://codepen.io/liao/pen/jObXwPN) ## 中場休息 直接 Demo 視差滾動 ## aos 1. [aos 官網](https://michalsnik.github.io/aos/) 2. [基本範例](https://codepen.io/liao/pen/PoPXKvm) 3. [第三週同學範例](https://rpg.hexschool.com/task/107/show) ### 載入步驟 在 </body>前加上以下程式碼 ``` <link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet"> <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script> <script> AOS.init(); </script> ``` AOS 單一設計 ``` <div data-aos="fade-up" data-aos-offset="200" data-aos-delay="50" data-aos-duration="1000" data-aos-easing="ease-in-out" data-aos-mirror="true" data-aos-once="false" data-aos-anchor-placement="top-center"> </div> ``` AOS 全域設計 ``` AOS.init({ // ─── 全域設定 ─── disable: false, // 何時停用 AOS:可填 'phone' / 'tablet' / 'mobile',或直接給布林值、表達式、函式 startEvent: 'DOMContentLoaded',// AOS 什麼事件被觸發時才開始初始化 initClassName: 'aos-init', // 元素在初始化完成後會先加上的類名 animatedClassName: 'aos-animate', // 動畫正式啟動時套用的類名 useClassNames: false, // 若設為 true,會把 `data-aos` 的值做為類名,在滾動時一併加上 disableMutationObserver: false,// 是否關閉 MutationObserver 自動偵測 DOM 變動(進階) debounceDelay: 50, // 視窗尺寸改變時的 debounce 間隔(毫秒) throttleDelay: 99, // 滾動事件的 throttle 間隔(毫秒) // ─── 可用 `data-aos-*` 覆寫的項目 ─── offset: 120, // 觸發動畫時,元素與視窗的距離(px) delay: 0, // 動畫延遲 0–3000 ms,步進 50 ms duration: 400, // 動畫時長 0–3000 ms,步進 50 ms easing: 'ease', // 動畫預設 easing 函式 once: false, // true 表示動畫只在第一次向下滾動時播放 mirror: false, // true 表示滾過元素後向上滑回可再次播放(鏡像效果) anchorPlacement: 'top-bottom', // 判定元素相對視窗的位置來觸發動畫,例如 'top-bottom' 代表元素頂端到視窗底端 }); ``` * 學員範例:https://codepen.io/liao/pen/BaovZRg ## AOS範例 * 文章左右偏移:https://codepen.io/bradtraversy/pen/bGbREWg * 組合: https://codepen.io/amctagg1/pen/WVjGKw * 完整範例:https://codepen.io/taohuh/pen/OZmgRV ## 額外補充 * [hover.css](https://ianlunn.github.io/Hover/) ## OPPO 官網 [正課結束加碼 - 新月志工許願] * [表頭視差](https://codepen.io/hexschool/pen/azzxxyx) * [程式碼整合](https://codepen.io/hexschool/pen/dPPLLBp) > [橫向滾動](https://codepen.io/hexschool/pen/QwwPRWZ) Code 講解,示範要用三個要怎麼做 ## 推坑 :::spoiler 圖示 ## 六週短期培訓課 7~8 月 [![web-layout-training-banner](https://hackmd.io/_uploads/HkZkKoW-gl.png)](https://www.hexschool.com/courses/web-layout-training-1st.html) ## 外部 UI 設計師合作([AAPD](https://academy.aapd.com.tw/courses/ui-bootcamp3)、[學員成果](https://simonlin7972.notion.site/Onboarding-13824f4c78ee401694963adf7da312cf)) * [晚安森林](https://tttom3669.github.io/2024_aapd_goodnight_forest/login.html) * [線上學習平台](https://annnnn1015.github.io/AAPD-LikeIt/courseVideo.html) * [寵物旅館](https://raythomas4721.github.io/pet-pet-go/index.html#) * [學日文](https://zxlee0114.github.io/AAPD-Chito-Chat/index.html) ![](https://warehouse.kaik.network/attachment/public_image/7944930a-1a0b-476d-be5a-3f2b1d6acd45/12e1bd4d-2c7b-42e8-85a3-7e146949d6eb.gif) ## 九個月前端工程師培訓班 [![banner (1)](https://hackmd.io/_uploads/SJzbFoWbll.png)](https://www.hexschool.com/courses/frontend-training.html) ::: ## 參加實體同學會的同學 * 來體驗營之前,請先觀看此[影片](https://courses.hexschool.com/courses/d9be031111/lectures/60491356),了解該如何部署自己的網站到網頁空間上