目錄
創建基本連拍動畫
操縱單一爆發粒子
最终想法
首頁 CMS教程 &#&按 快速入門Mojs動畫庫:爆炸模組指南

快速入門Mojs動畫庫:爆炸模組指南

Sep 02, 2023 pm 11:49 PM
快速入門 爆炸模組 mojs動畫庫

快速入門Mojs動畫庫:爆炸模組指南

我們透過學習如何使用 mojs 為 HTML 元素新增動畫來開始本系列。在第二個教學中,我們繼續使用 Shape 模組製作內建 SVG 形狀的動畫。第三個教學介紹了使用 ShapeSwirlstagger 模組對 SVG 形狀進行動畫處理的更多方法。

現在,我們將學習如何使用 Burst 模組以突發形式製作不同 SVG 形狀的動畫。本教程將取決於我們在前三個教程中介紹的概念。如果您還沒有閱讀過它們,我建議您先閱讀它們。

創建基本連拍動畫

在創建任何突發動畫之前,我們需要做的第一件事是實例化 Burst 物件。之後,我們可以指定不同屬性的值來控制動畫的播放方式。 Burst 模組中的許多屬性名稱與 Shape 模組中的屬性名稱相同。然而,在這種情況下,這些屬性執行非常不同的任務。

leftright 屬性決定突發的初始位置,而不是突發內部的粒子。同樣,xy 屬性決定整個突發的移動而不是單一粒子的移動。

所有爆發粒子形成的圓的半徑由 radius 屬性控制。這與單一形狀的 radius 屬性非常不同,後者決定了這些形狀的大小。在爆發的情況下,半徑決定了其中各個形狀的距離。

可以使用 count 屬性指定單次突發中的形狀或粒子數量。預設情況下,您建立的每個突發中將有五個粒子。所有這些粒子均勻分佈在爆發的圓週上。例如,如果有四個粒子,它們將彼此成 90 度放置。如果有三個粒子,它們將被放置在 120 度處。

如果您不希望爆發粒子覆蓋整個 360 度,您可以使用 Degree 屬性指定應覆寫的部分。任何大於 0 的值對此屬性都有效。指定的度數將均勻分佈在所有粒子之間。如果度數超過 360,形狀可能會重疊。

使用 angle 屬性指定的角度決定了​​整個突發的角度。在這種情況下,單一粒子不是繞著它們自己的中心旋轉,而是繞著爆發的中心旋轉。這與地球繞太陽公轉類似,與地球自轉軸自轉不同。

scale 屬性可縮放突發的所有物理屬性的值,進而縮放各個形狀。就像其他突發屬性一樣,其中的所有形狀都會立即縮放。將突發 scale 設為 3 會將整個突發的半徑以及單一形狀的大小增加 3。

在下面的程式碼片段中,我們將使用剛剛討論的屬性來建立五個不同的突發。

var burstA = new mojs.Burst({
  count: 20
});

var burstB = new mojs.Burst({
  angle: {
    0: 360
  },
  scale: {
    1: 2
  },
  radius: 10
});

var burstC = new mojs.Burst({
  angle: {
    0: 360
  },
  scale: {
    1: 2
  },
  radius: {
    10: 100
  }
});

var burstD = new mojs.Burst({
  degree: 180,
  radiusX: 10,
  angle: -90,
  scale: {
    1: 2
  },
  radius: {
    10: 100
  }
});

var burstE = new mojs.Burst({
  count: 20,
  degree: 3600
});
登入後複製

您可以看到 burstAburstE 僅在它們必須覆蓋的度數上有所不同。由於 burstA 中的粒子必須覆蓋 360 度(預設值),因此它們的放置間隔為 360/20 = 18 度。另一方面,burstE 中的粒子以 3600/20 = 180 度數放置。從零開始,第一個粒子放置在 0 度處,下一個粒子放置在 180 度處。

然後將第三個粒子放置在 360 度處,基本上等於 0 度。然後將第四個粒子放置在 540 度處,但這基本上等於 180 度。換句話說,所有奇數粒子都放置在0度處,所有偶數粒子放置在180度處。最後,您只看到兩個粒子,因為所有其他粒子都與前兩個粒子重疊。

請務必記住,您無法直接控制突發動畫的持續時間、延遲或緩動功能。此模組根據正在動畫的不同子項的值自動確定所有這些值。

操縱單一爆發粒子

到目前為止,在本教程中,爆發中的所有粒子都應用了相同的動畫。它們的角度、比例、半徑和位置都改變了相同的值。此外,我們無法控制單一粒子或整個爆發的持續時間和延遲。 mojs Burst 模組沒有一組可以直接變更所有這些值的屬性。但是,我們可以指定單一粒子的動畫值,進而影響爆發動畫。

爆发动画中的所有粒子都被视为原始 Burst 对象的子级。因此,mojs 允许我们使用 children 属性来控制单个爆发粒子的动画,该属性接受一个对象作为其值。您可以在子对象内使用除 xy 之外的所有 ShapeSwirl 属性。这是有道理的,因为爆发动画中的单个粒子必须出现在某些位置,并且允许我们随机更改单个粒子的位置将改变配置。

您未指定的任何子属性值都将设置为 ShapeSwirl 模块提供的默认值。在下面的示例中,我们对突发动画的 20 条不同线进行动画处理。这次,angle 属性已设置在单个粒子上,而不是 Burst 对象上,这样只有线绕其中心旋转,而不是整个对象。正如我们在上一篇教程中了解到的,所有 ShapeSwirl 对象默认情况下都会从 1 缩小到 0。这就是动画中线条长度从 40 变为 0 的原因。

var burstA = new mojs.Burst({
  count: 20,
  children: {
    shape: 'line',
    stroke: 'black',
    radius: 20,
    angle: {
    0: 180
    }
  }
});
登入後複製

正如我之前提到的,我们可以为连拍动画中的所有 ShapeSwirl 属性设置动画。动画中的每个子项都可以有自己的一组属性。如果仅提供一个值,它将应用于所有子粒子。如果这些值以数组形式提供,它们将按顺序应用,一次一个粒子。

下面是使用我们迄今为止学到的所有概念创建五种不同的突发动画的 JavaScript 代码。

var burstA = new mojs.Burst({
  count: 20,
  angle: {
    0: 180
  },
  radius: {
    0: 100
  },
  children: {
    shape: "polygon",
    stroke: "black",
    radius: 20,
    angle: {
      0: 360
    },
    duration: 4000
  }
});

var burstB = new mojs.Burst({
  count: 20,
  angle: {
    0: 180
  },
  radius: {
    0: 100
  },
  children: {
    shape: "polygon",
    fill: ["yellow", "cyan", "orange"],
    stroke: "black",
    radius: 20,
    scale: {
      1: 2
    },
    duration: 2000
  },
  isShowEnd: false
});

var burstC = new mojs.Burst({
  count: 20,
  angle: {
    0: -180
  },
  radius: {
    0: 100
  },
  children: {
    shape: "circle",
    fill: ["red", "black", "blue"],
    radius: {
      10: "stagger(5, 1)"
    }
  }
});

var burstD = new mojs.Burst({
  count: 6,
  radius: {
    0: 100
  },
  children: {
    shape: "circle",
    fill: ["red", "yellow", "blue"],
    scale: {
      1: "rand(1, 10)"
    }
  },
  isShowEnd: false
});

var burstE = new mojs.Burst({
  count: 6,
  radius: {
    0: 100
  },
  children: {
    shape: "circle",
    fill: ["red", "yellow", "blue"],
    stroke: "black",
    scale: {
      1: "rand(1, 10)"
    }
  }
}).then({
  angle: {
    0: 360
  },
  radius: {
    100: 0
  },
  scale: {
    1: 0
  }
});
登入後複製

在第一个突发动画中,直接应用于 Burst 对象的 angle 会围绕突发对象的中心旋转整个组。然而,在children属性中应用的angle会围绕它们自己的中心旋转所有三角形。我们还通过将所有子级的动画持续时间更改为 4000 毫秒来减慢突发动画的速度。

在第二个连拍动画中,所有三角形的颜色均取自传递给 fill 属性的数组。我们只指定了三种填充颜色,但三角形的总数为 20。在这种情况下,mojs 会不断循环数组元素,并一次又一次地用相同的三种颜色填充三角形。

在第四个动画中,我们使用在上一个教程中了解的 rand 字符串来为所有子粒子随机选择一个比例值。我们还将 isShowEnd 属性的值设置为 false 以隐藏动画结束时的粒子。

在第五个动画中,我们使用 Shape 模块教程中的 then() 方法在第一个动画序列完成后播放另一个动画序列。

最终想法

本系列的目的是让您熟悉 mojs 动画库的基础知识。每个教程都侧重于单个模块以及如何使用该模块中的属性来创建基本动画。

最后一个教程使用了之前教程中的概念来创建稍微复杂的动画。 Mojs 是一个非常强大的动画库,您获得的最终结果取决于您对所有属性的创意程度,因此请不断尝试。

如果您希望我在本教程中澄清任何内容,请在评论中告诉我。

以上是快速入門Mojs動畫庫:爆炸模組指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Python學習:如何在系統中安裝pandas函式庫 Python學習:如何在系統中安裝pandas函式庫 Jan 09, 2024 pm 04:42 PM

快速入門:Python安裝pandas函式庫的方法,需要具體程式碼範例一、概述Python是一種廣泛使用的程式語言,它擁有強大的開發生態系統,其中包括許多實用的程式庫。而pandas是其中一款非常受歡迎的資料分析庫,它提供了高效的資料結構和資料分析工具,使得資料處理和分析變得更加簡單。本文將介紹如何在Python中安裝pandas庫,並提供對應的程式碼範例。二、安裝Py

快速入門Mojs動畫庫:爆炸模組指南 快速入門Mojs動畫庫:爆炸模組指南 Sep 02, 2023 pm 11:49 PM

我們透過學習如何使用mojs為HTML元素添加動畫來開始本系列。在第二個教學中,我們繼續使用Shape模組製作內建SVG形狀的動畫。第三個教學介紹了使用ShapeSwirl和stagger模組對SVG形狀進行動畫處理的更多方法。現在,我們將學習如何使用Burst模組以突發形式製作不同SVG形狀的動畫。本教程將取決於我們在前三個教程中介紹的概念。如果您還沒有閱讀過它們,我建議您先閱讀它們。創建基本連拍動畫在創建任何突發動畫之前,我們需要做的第一件事是實例化Burst物件。之後,我們可以指定不同屬性

快速入門:使用Go語言函數實現簡單的音訊串流服務 快速入門:使用Go語言函數實現簡單的音訊串流服務 Jul 29, 2023 pm 11:45 PM

快速入門:使用Go語言函數實現簡單的音訊串流服務引言:音訊串流服務在今天的數位化世界中越來越受歡迎,它可以讓我們透過網路直接播放音訊文件,而無需進行完整的下載。本文將介紹如何使用Go語言函數來快速實現一個簡單的音訊串流服務,以便您能更好地理解和使用這項功能。第一步:準備工作首先,您需要安裝Go語言的開發環境。您可以從官方網站(https://golan

推薦五款Go語言常用框架,讓您快速入門 推薦五款Go語言常用框架,讓您快速入門 Feb 24, 2024 pm 05:09 PM

Title:快速上手:五款Go語言常用框架推薦近年來,隨著Go語言的流行,越來越多的開發者選擇採用Go進行專案開發。 Go語言以其高效、簡潔和性能優越等特點受到了廣泛關注。在Go語言開發中,選擇適合的框架能夠提高開發效率和程式碼品質。本文將介紹五款Go語言常用框架,並附上程式碼範例,幫助讀者快速上手。 Gin框架Gin是一個輕量級的web框架,具有快速高效的特點,

快速入門:使用Go語言函數實現簡單的圖像辨識功能 快速入門:使用Go語言函數實現簡單的圖像辨識功能 Jul 30, 2023 pm 09:49 PM

快速入門:使用Go語言函數實現簡單的影像辨識功能在現今的科技發展中,影像辨識技術已成為一個熱門的話題。作為一種快速且有效率的程式語言,Go語言具備了實現影像辨識功能的能力。本文將透過使用Go語言函數實現簡單的圖像辨識功能,為讀者提供一個快速入門的指南。首先,我們需要安裝Go語言的開發環境。可在Go語言官方網站(https://golang.org/)上下載適

學習使用五種Kafka視覺化工具的快速入門 學習使用五種Kafka視覺化工具的快速入門 Jan 31, 2024 pm 04:32 PM

快速入門:五種Kafka視覺化工具的使用指南1.Kafka監控工具:簡介ApacheKafka是一種分散式發布-訂閱訊息系統,它可以處理大量的數據,並提供高吞吐量和低延遲。由於Kafka的複雜性,需要使用視覺化工具來幫助監控和管理Kafka叢集。 2.Kafka視覺化工具:五大選擇KafkaManager:KafkaManager是一個開源的Web界

快速入門:使用Go語言函數實現簡單的資料聚合功能 快速入門:使用Go語言函數實現簡單的資料聚合功能 Jul 29, 2023 pm 02:06 PM

快速入門:使用Go語言函數實現簡單的資料聚合功能在軟體開發中,我們經常會遇到需要對一組資料進行聚合的情況。聚合操作可以統計、匯總、計算等,對資料進行分析展示。而在Go語言中,我們可以使用函數來實作簡單的資料聚合功能。首先,我們需要定義一個資料類型來表示我們要進行聚合的資料。假設我們有一個學生的成績表,每個學生有姓名和成績兩個字段,那麼我們可以創建如下的結構

快速入門:使用Go語言函數實現簡單的視訊串流服務 快速入門:使用Go語言函數實現簡單的視訊串流服務 Aug 01, 2023 pm 02:29 PM

快速入門:使用Go語言函數實現簡單的視訊串流服務引言:視訊串流服務在現代應用中扮演著重要角色。本文將介紹如何使用Go語言函數來實作一個簡單的影片串流服務。我們將使用Go語言的net/http套件來處理HTTP請求,並結合FFmpeg函式庫來處理視訊串流的編解碼。步驟一:安裝FFmpeg在開始寫程式之前,我們需要先安裝FFmpeg函式庫。可透過FFmpeg官方網站

See all articles