GSAP動畫庫,探究蘋果官網頁面滾動動畫是如何實現的

GSAP動畫庫,探究蘋果官網頁面滾動動畫是如何實現的

前言

每次瀏覽蘋果官網時都在好奇,當我們向下滾動頁面時一個個文字或圖片總能緩緩浮現,往上滾動時又能慢慢收起來,這就究竟是如是實現的呢。在查閱一些資料時發現了Scrollmagic.js插件,該插件提供了靈活的滾動動畫,可以自定義各種各樣的效果,但是當我滿懷信心的決定大干一場時,發現這個插件已經很久沒有維護更新了,而且是基于jquery開發的,在引入vue3腳手架時并不適配,有感興趣的小伙伴可以去看官網:http://scrollmagic.io/docs/index.html。最終,我發現了一個很強大的動畫庫GSAP,如官網首頁所說的animate anything,它擁有著各種強大的動畫能力,官網地址:https://gsap.com/。本文主要對其中的一個plugin ScrollTrigger進行簡單demo講解。實現效果如下:

如何使用

1、首先需要安裝gsap包,建議安裝最新版

yarn add gsap //或 npm install gsap

2、寫幾個簡單的滾動模板

<template><section class="section flex-center column blue normal" ref="header"><div class="box">box</div><div class="box">box</div><div class="box">box</div></section><div class="section flex-center column normal" ref="top"><div class="box">box</div><div class="box">box</div><div class="box">box</div></div><div class="section flex-center column" ref="main"><div class="box">box</div><div class="box">box</div><div class="box">box</div></div><section class="section flex-center orange column" ref="bottom"> <div class="box">box</div><div class="box">box</div><div class="box">box</div></section>
</template>

3、引入GSAP以及ScrollTrigger插件,并注冊插件

import gsap from 'gsap';
import { ScrollTrigger } from 'gsap/ScrollTrigger';
gsap.registerPlugin(ScrollTrigger);

4、創建動畫,配置動畫移動的始末位置,以及觸發動畫的位置,動畫的node節點等參數

const header=ref();ctx = gsap.context((self:any) => {const boxes = self.selector('.box');boxes.forEach((box:any) => {gsap.to(box, {x: 300,scrollTrigger: {trigger: box,start: 'top 40%',end: '+=500',scrub: true,},});});}, header.value); 

更多配置

ScrollTrigger的主要配置可以參考下面的代碼:

  • containerAnimation:觸發由垂直滾動控制的“水平”滾動部分內的動畫
  • end:確定ScrollTrigger的結束位置
  • endTrigger:在正常文檔流中的位置用于計算ScrollTrigger結束的位置
  • fastScrollEnd:它將強制完成當前ScrollTrigger的動畫,避免在用戶快速滾動時重疊動畫
  • horizontal:使用水平滾動
  • onRefresh:當刷新發生時的回調(通常是一個resize事件),它強制ScrollTrigger重新計算它的所有位置
  • onToggle:當ScrollTrigger從非活動切換到活動時的回調
  • scrub:允許您在用戶停止滾動后捕捉到某些進度值
  • start:確定ScrollTrigger的起始位置
  • toggleActions:將在進入時播放動畫,在離開時暫停動畫,在再次向后進入時恢復動畫,并在滾動到起點后重置(回退到起點)。您可以為每個操作使用以下任何關鍵字:“播放”、“暫停”、“恢復”、“重置”、“重新啟動”、“完成”、“反轉”和“無”
  • toggleClass:當ScrollTrigger切換活動/非活動時,向一個元素(或多個元素)添加/刪除一個類

最后

ScrollTrigger只是GSAP中的一個插件,更多的動畫效果還在學習中,感興趣的小伙伴可以直接去官網學習查看,使用這個庫能減少很多我們手寫css動畫的苦惱,有需要的小伙伴可直接訪問本文demo地址:https://gitee.com/fcli/scroll-trigger.git

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/206701.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/206701.shtml
英文地址,請注明出處:http://en.pswp.cn/news/206701.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于OpenCV+CNN+IOT+微信小程序智能果實采摘指導系統——深度學習算法應用(含pytho、JS工程源碼)+數據集+模型(五)

目錄 前言總體設計系統整體結構圖系統流程圖 運行環境Python環境TensorFlow 環境Jupyter Notebook環境Pycharm 環境微信開發者工具OneNET云平臺 模塊實現1. 數據預處理2. 創建模型并編譯3. 模型訓練及保存4. 上傳結果5. 小程序開發1&#xff09;查詢圖片2&#xff09;查詢識別結…

paypal貝寶怎么綁卡支付

一、PayPal是什么 PayPal是一個很多國家地區通用的支付渠道&#xff0c;我們可以把它理解為一項在線服務&#xff0c;相當于美國版的支付寶。你可以通過PayPal進行匯款和收款&#xff0c;相比傳統的電匯和西聯那類的匯款方式&#xff0c;PayPal更加簡單和容易&#xff0c;被很…

利用proteus實現串口助手和arduino Mega 2560的串口通信

本例用到的proteus版本為8.13&#xff0c;ardunio IDE版本為2.2.1&#xff0c;虛擬串口vspd版本為7.2&#xff0c;串口助手SSCOM V5.13.1。軟件的下載安裝有很多教程&#xff0c;大家可以自行搜索&#xff0c;本文只介紹如何利用這4種軟件在proteus中實現arduino Mega 2560的串…

Day45| 爬樓梯 (進階)Leetcode 322. 零錢兌換 Leetcode 279. 完全平方數

爬樓梯 &#xff08;進階&#xff09; 題目鏈接 爬樓梯&#xff08;進階版&#xff09; 本題目屬于排列中的背包問題&#xff0c;所以先遍歷背包&#xff0c;后遍歷物品&#xff0c;剩下的就是完全背包的板子了&#xff0c;下面直接上代碼&#xff1a; #include<iostream…

刷題記錄--算法--簡單

第一題 2582. 遞枕頭 已解答 簡單 相關標簽 相關企業 提示 n 個人站成一排&#xff0c;按從 1 到 n 編號。 最初&#xff0c;排在隊首的第一個人拿著一個枕頭。每秒鐘&#xff0c;拿著枕頭的人會將枕頭傳遞給隊伍中的下一個人。一旦枕頭到達隊首或隊尾&#xff0c;傳遞…

高防IP是什么?有什么優勢?

隨著互聯網的普及和快速發展&#xff0c;網絡安全問題日益突出。在眾多安全問題中&#xff0c;DDOS攻擊是一種常見的攻擊手段&#xff0c;它通過發送大量的無效或低效請求&#xff0c;使得目標服務器無法響應正常用戶的請求&#xff0c;從而造成服務不可用的情況。為了解決這個…

部署zabbix

源碼下載地址&#xff1a; Download Zabbix sources nginx: download 防火墻和selinux都需要關閉 1、部署監控服務器 1&#xff09;安裝LNMP環境 Zabbix監控管理控制臺需要通過Web頁面展示出來&#xff0c;并且還需要使用MySQL來存儲數據&#xff0c;因此需要先為Zabbix準備基礎…

vue的el

類型&#xff1a;string | Element 限制&#xff1a; 只在用 new 創建實例時生效。 詳細&#xff1a; 提供一個在頁面上已存在的 DOM 元素作為 Vue 實例的掛載目標。可以是 CSS 選擇器&#xff0c;也可以是一個 HTMLElement 實例。 在實例掛載之后&#xff0c;元素可以用 vm.…

Java創建線程有哪幾種方式?

Java創建線程有哪幾種方式&#xff1f; 在 Java 中&#xff0c;創建線程有多種方式&#xff0c;主要包括使用 Thread 類和實現 Runnable 接口。以下是幾種常見的創建線程的方式&#xff1a; 繼承 Thread 類&#xff1a; 通過繼承 Thread 類并重寫 run 方法來創建線程。 class …

如何使用eXtplorer+cpolar內網穿透搭建個人云存儲實現公網訪問

文章目錄 1. 前言2. eXtplorer網站搭建2.1 eXtplorer下載和安裝2.2 eXtplorer網頁測試2.3 cpolar的安裝和注冊 3.本地網頁發布3.1.Cpolar云端設置3.2.Cpolar本地設置 4.公網訪問測試5.結語 1. 前言 通過互聯網傳輸文件&#xff0c;是互聯網最重要的應用之一&#xff0c;無論是…

關于互聯網安全方面需要了解的一些知識

關于互聯網安全方面需要了解的一些知識 文章目錄 關于互聯網安全方面需要了解的一些知識一、資產掃描二、漏洞掃描三、滲透測試四、POC五、Exp六、代碼規范七、函數命名八、注釋怎么寫 一、資產掃描 資產掃描是一種通過掃描網絡或系統中所有設備、應用程序和服務&#xff0c;識…

PHP escapeshellarg()+escapeshellcmd()繞過

文章目錄 函數利用escapeshellarg()函數escapeshellcmd()函數 exp執行原理攻擊面例題 [BUUCTF 2018]Online Tool例題 [網鼎杯 2020 朱雀組]Nmap 函數利用 escapeshellarg()函數 單引號 ()&#xff1a;轉義為 \。 雙引號 (")&#xff1a;轉義為 \"。 反斜杠 (\)&…

HTTP不同場景下的通信過程和用戶上網認證過程分析

目錄 HTTP不同場景的通信過程 HTTP正常交互過程 HTTP透明加速傳輸過程 HTTP代理服務器場景下交互過程 通過AC對上網用戶不同場景的認證過程 AC上網認證正常交互過程 通過Cookie實現免認證交互過程 代理服務器場景下HTTP密碼認證交互過程 HTTP不同場景的通信過程 HTTP、…

專業130+總分400+云南大學通信847專業基礎綜考研經驗(原專業課827)

今年專業130總分400云南大學通信上岸&#xff0c;整體考研感覺還是比較滿意&#xff0c;期間也付出了很多心血&#xff0c;走過彎路&#xff0c;下面分享一下這一年考研得失&#xff0c;希望大家可以從中有所借鑒。 先說明我在考研報名前更換成云南大學的理由&#xff1a;&…

谷歌正式發布最強 AI 模型 Gemini

2023年12月6日&#xff0c;谷歌公司宣布推出其被認為是規模最大、功能最強大的人工智能模型 Gemini。 Gemini將分為三個不同的套件&#xff1a;Gemini Ultra、Gemini Pro和Gemini Nano。 Gemini Ultra被認為具備最強大的能力&#xff0c;Gemini Pro則可擴展至多任務&#x…

xilinx原語詳解及仿真——ODDR

ODDR位于OLOGIC中&#xff0c;可以把單沿傳輸的數據轉換為雙沿傳輸的數據&#xff0c; 在講解ODDR功能之前&#xff0c;需要先了解OLOGIC的結構及功能。 1、OLOGIC OLOGIC塊位于IOB的內側&#xff0c;FPGA內部信號想要輸出到管腳&#xff0c;都必須經過OLOGIC。OLOGIC資源的類…

CleanMyMac4.16中文最新版本下載

當很多人還在為電腦運行緩慢、工作問題不能快速得到解決而煩惱的時候&#xff0c;我已經使用過了多款系統清理工具&#xff0c;并找到了最適合我的那一款。我的電腦是超耐用的Mac book&#xff0c;接下來給大家介紹三種在眾多蘋果電腦清理軟件的排名較高的軟件。 一、Maintena…

【ET8】0.ET8入門-ET框架介紹

ET8 新特性 多線程多進程架構,架構更加靈活強大&#xff0c;多線程設計詳細內容請看多線程設計課程抽象出纖程(Fiber)的概念&#xff0c;類似erlang的進程&#xff0c;非常輕松的創建多個纖程&#xff0c;利用多核&#xff0c;仍然是單線程開發的體驗纖程調度: 主線程&#xf…

首次面試經歷(忘指導)當我在簡歷上寫了蒼穹外賣,瑞吉外賣時……

&#x1f308;鍵盤敲爛&#xff0c;年薪30萬&#x1f308; 個人簡介: 大三在校生&#xff0c;二本院校&#xff0c;專業&#xff1a;信息管理與信息系統 面試崗位&#xff1a; java開發實習生 投”簡歷“ 臨近大三寒假&#xff0c;很早就有實習想法的我&#xff0c;對12月做…

一篇文章了解JDK的前世今生

我們每天都在開發Java,每天都在使用JDK,那么我們了解JDK的發展史嗎,這篇文章將帶你深入了解JDK的發展史。 JDK(Java Development Kit)是Java開發者工具包,是用于編寫Java程序和運行Java程序的軟件開發工具集。自從1995年Java語言首次發布以來,JDK已經經歷了數十年的發展…