」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > “第 i 天 GSAP:帶有旋轉箭頭的互動式滾動動畫”

“第 i 天 GSAP:帶有旋轉箭頭的互動式滾動動畫”

發佈於2024-12-22
瀏覽:717

介紹

開發者您好!

歡迎來到我的 GSAP 之旅的第 7 天,在這裡我探索網路動畫的無限可能性。今天,我接受了創建互動式基於滾動的選取框動畫的挑戰,該動畫具有動態文字和旋轉箭頭。

借助 GSAP 強大的動畫工具,我們將使頁面響應用戶滾動方向(向上或向下),並實現無縫移動和旋轉。讓我們深入了解一下!


我們正在建設什麼? ️

我們的動畫將包括:

    文字和圖像的滾動字幕。
  • 根據
  • 滾動方向進行調整的響應式動畫
  • 旋轉箭頭增添魅力!
您可以在此處查看

現場演示


HTML結構

這是我使用的簡單 HTML 標籤:


第 7 天滾動文字動畫 頭>


    
    
    Day-7 Scrolling Text Animation
    


    


JavaScript Animation with GSAP

Here’s the GSAP-powered JavaScript code that makes the magic happen:

window.addEventListener("wheel", function (dets) { 
    if (dets.deltaY > 0) {
        // Scrolling Down
        gsap.to(".marque", {
            x: "-200%", 
            duration: 4,
            repeat: -1, 
            ease: "none", 
        });
        gsap.to(".marque img", {
            rotate: 180
        });
    } else {
        // Scrolling Up
        gsap.to(".marque", {
            x: "0%", 
            duration: 4,
            repeat: -1, 
            ease: "none", 
        });
        gsap.to(".marque img", {
            rotate: 0
        });
    }
});

它是如何運作的⚙️

  1. 事件監聽器:window.addEventListener("wheel") 偵測滾動方向。
  2. GSAP 動畫
      gsap.to() 將選取框朝特定方向移動。
    • 箭頭的旋轉增添了動態、互動的感覺。
  3. 無限滾動:使用repeat: -1確保選取框不斷循環。

挑戰與經驗教訓

挑戰:將捲動方向與選取框移動同步很棘手。

解決方案:GSAP 強大的 API 可以輕鬆地透過重複、輕鬆和持續時間等屬性來微調動畫。


最後的想法

該專案展示了 GSAP 如何處理

基於滾動的互動並使網頁栩栩如生。無論您是在製作個人作品集還是創意網站,GSAP 都是讓動畫引人入勝且直觀的完美工具。

親自嘗試並分享您的創作!


資源

    GSAP 文件
  • 現場演示
  • GitHub 上的原始碼

版本聲明 本文轉載於:https://dev.to/anticoder03/day-7-with-gsap-interactive-scrolling-animation-with-rotating-arrows-4cld?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 如何使用 Java 和 JFreeChart 用軸註解 .png 檔案?
    如何使用 Java 和 JFreeChart 用軸註解 .png 檔案?
    如何使用 Java 用軸註釋 .png 檔案無需依賴外部軟體即可用軸註釋 .png 影像。以下是利用 Java 內建功能和 JFreeChart 進行進階自訂的方法:建立圖表基礎首先,使用 JFreeChart 的 ChartFactory.createXYLineChart 方法建立圖表。這將建立...
    程式設計 發佈於2024-12-22
  • 新部落格系列:Python 人工智慧基礎知識
    新部落格系列:Python 人工智慧基礎知識
    歡迎來到我的新部落格系列,我們將在機器學習的背景下探索 Python 的迷人世界。由於其簡單性和提供的強大庫,Python 已成為資料科學和機器學習領域的基石。無論您是初學者還是希望提升自己的技能,本系列都將引導您了解 Python 的基礎知識,為您的機器學習之旅奠定堅實的基礎。 ...
    程式設計 發佈於2024-12-22
  • 如何在 JavaScript 變數中安全地嵌入 PHP 字串?
    如何在 JavaScript 變數中安全地嵌入 PHP 字串?
    為JavaScript 變數編碼PHP 字串當嘗試將包含引號或換行符的PHP 字串嵌入到JavaScript 變數中時,有必要正確編碼它們以避免解析錯誤。對這些字串進行編碼的最直接方法是透過 PHP 的 json_encode() 函數。 要使用此函數,請確保您使用的是 PHP 版本 5.2.0 或...
    程式設計 發佈於2024-12-22
  • Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta:列偏移的刪除和恢復Bootstrap 4 在其Beta 1 版本中引入了重大更改柱子偏移了。然而,隨著 Beta 2 的後續發布,這些變化已經逆轉。 從 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    程式設計 發佈於2024-12-22
  • 如何使用 AJAX 有效率地將 JavaScript 陣列傳送到 PHP?
    如何使用 AJAX 有效率地將 JavaScript 陣列傳送到 PHP?
    使用 AJAX 有效地將 JavaScript 陣列傳遞給 PHP許多 JavaScript 應用程式使用需要傳送到 PHP 進行處理的資料數組。一次遍歷和處理數組中的一個元素可能效率很低,尤其是對於大型數組。本文提供了一種使用 JSON 和 AJAX 來優化此流程的替代方法。 問題:應用程式需要透...
    程式設計 發佈於2024-12-22
  • 探索 Python 認證 4
    探索 Python 認證 4
    Python 認證近年來獲得了極大的普及和重要性。隨著對 Python 程式設計師和資料分析師的需求不斷增長,這些認證對於個人展示其在該領域的技能和專業知識變得至關重要。雖然有多種 Python 認證可供選擇,但全球公認的最負盛名的認證是 Python Institute 提供的認證。在本文中,我們...
    程式設計 發佈於2024-12-22
  • 提升 JavaScript 錯誤處理等級:從「try...catch」到自訂錯誤
    提升 JavaScript 錯誤處理等級:從「try...catch」到自訂錯誤
    错误处理是每个 JavaScript 开发人员都会遇到的事情之一,但并不是每个人都深入掌握它。如果您一直依赖简单的 try...catch 语句,那么是时候提升您的游戏水平了。这篇文章将带您完成从基本错误处理到制作自定义错误的整个过程,使您的代码更具弹性且更易于调试。 1. 基础知识...
    程式設計 發佈於2024-12-22
  • 為什麼 BULK INSERT 不接受預存程序中的變數檔案路徑?
    為什麼 BULK INSERT 不接受預存程序中的變數檔案路徑?
    使用預存程序批次插入:故障排除在嘗試使用預存程序批次插入資料時,開發人員遇到了語法錯誤。目標是將有效的 BULK INSERT 查詢複製到流程中。以下是對此問題及其解決方案的分析。 此問題是由於嘗試將檔案名稱作為變數傳遞給預存程序中的 BULK INSERT 指令而造成的。不幸的是,這是 BULK ...
    程式設計 發佈於2024-12-22
  • 儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    解決PHP 中的POST 請求故障在提供的程式碼片段中:action=''而非:action="<?php echo $_SERVER['PHP_SELF'];?>";?>"檢查$_POST陣列:表單提交後使用 var_dump 檢查 $_POST 陣列的內...
    程式設計 發佈於2024-12-22
  • 普通算術轉換如何決定帶有符號和無符號運算元的二元「+」運算子的結果類型?
    普通算術轉換如何決定帶有符號和無符號運算元的二元「+」運算子的結果類型?
    有符號和無符號二元運算子的提升規則有符號和無符號二元運算子的提升規則// Snippet 1 int max = std::numeric_limits<int>::max(); unsigned int one = 1; unsigned int result = max one;...
    程式設計 發佈於2024-12-22
  • C 中的可變長度數組 (VLA) 如何在堆疊上運作?
    C 中的可變長度數組 (VLA) 如何在堆疊上運作?
    堆疊上的動態數組大小C 中的可變大小數組(VLA) 允許在運行時指定數組的大小無需訴諸動態分配技術,例如malloc 或new。這與聲明具有固定大小的陣列的傳統方法形成對比。 您提供的程式碼滿足宣告具有在執行時間確定的大小的陣列的標準:int main(int argc, char **argv) ...
    程式設計 發佈於2024-12-22
  • 在 Go 中使用 WebSocket 進行即時通信
    在 Go 中使用 WebSocket 進行即時通信
    构建需要实时更新的应用程序(例如聊天应用程序、实时通知或协作工具)需要一种比传统 HTTP 更快、更具交互性的通信方法。这就是 WebSockets 发挥作用的地方!今天,我们将探讨如何在 Go 中使用 WebSocket,以便您可以向应用程序添加实时功能。 在这篇文章中,我们将介绍: WebSoc...
    程式設計 發佈於2024-12-22
  • 如何在保持文字不傾斜的同時傾斜容器?
    如何在保持文字不傾斜的同時傾斜容器?
    如何傾斜元素但保持文本正常(不傾斜)創建具有不傾斜文本的傾斜按鈕創建立具有未傾斜文字的傾斜元素,您可以對父級和子級應用轉換elements:傾斜父元素:使用transform: skew()屬性傾斜父元素(在本例中為元素)。 取消子元素的傾斜:對子元素應用相反的變換( 元素)使用transform:...
    程式設計 發佈於2024-12-22
  • 節流解釋:管理 API 請求限制的指南
    節流解釋:管理 API 請求限制的指南
    什么时候应该在代码中实施限制? 对于大型项目,通常最好使用 Cloudflare Rate Limiting 或 HAProxy 等工具。这些功能强大、可靠,可以为您处理繁重的工作。 但是对于较小的项目——或者如果您想了解事情是如何工作的——您可以在代码中创建自己的速率限制器。为什...
    程式設計 發佈於2024-12-22
  • 如何有效地從Go中的切片中刪除重複項?
    如何有效地從Go中的切片中刪除重複項?
    從切片中刪除重複項目在您的情況下,您在從切片中刪除重複項目時遇到問題,因為您重新迭代切片並在迭代時刪除元素。如果重複項位於切片末尾,這可能會導致索引錯誤和恐慌。 要解決此問題,更有效的方法是將唯一元素複製到切片的開頭,然後修剪之後任何多餘的元素。具體方法如下:i := 0 for _, v := r...
    程式設計 發佈於2024-12-22

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3