Wykonaj interaktywne efekty typografii 3D

Sep 11, 2025
Jak
Interactive 3D typography

Typografia zawsze odgrywa większą rolę w dowolnym arsenalnym narzędzi projektanta, ponieważ wybierają właściwy krój, który poprawi wiadomość i przedstawia odpowiedni kontekst do przekazywania. W ciągu ostatnich ośmiu lat projektanci stron internetowych mieli zdolność do wprowadzenia niestandardowe kolizny Jak na przykład Typografia kinetyczna do ich projektu i mają podobną kontrolę typograficzną do tych, którzy cieszą się projektantami drukowania.

Spójrz na wiele witryn, które są opisywane jako nagradzane lub odbierające "witrynę tytułów dnia", a wkrótce zauważysz, że ich wykorzystanie typografii staje się centralne do projektowania, pozwalając im wznieść się ponad konkurencję. Może to wahać się od animowanych form literowych, ruchu reaktywnego do interakcji użytkownika, do odważnego użycia formularzy typu sceny do centrum (przechowuj pliki typografii) magazyn w chmurze ).

Jeśli chcesz utworzyć witrynę chwytania uwagi z zerowym zamieszaniem, spróbuj Kreator strony internetowej zbyt. I upewnij się, że wydajność witryny jest zoptymalizowana z góry hosting .

  • Czcionki 3D: 9 górnych wskazówek

W tym samouczku efekt typu wykorzysta kształty liter jako maski do kilku szybkich, wolnych płynnych szlaków cząstek, które będą dynamicznie wirować i przesunąć przez litery. Nie tylko będzie ta piękna animacja, ale tak jak będzie renderowana na HTML5 Canvas. Element, zostanie to przekształcony w 3D, aby obrócić w kierunku myszy, gdy porusza się po ekranie. Jest to idealne rozwiązanie do nagłówków witryn lub tylko wtedy, gdy musisz zachęcić uwagę użytkownika o wezwanie do działania.

Pobierz tutaj pliki samouczka

01. Rozpocznij proces

Otwórz folder "Start" z plików projektu w swoim kodzie IDE. Projekt rozpocznie się od utworzenia klasy obiektu cząstek. Będzie to wykorzystane do tworzenia płynnych obrazów w tekście w projekcie. Otwórz plik "Sketch.js" i dodaj poniższą zmienną, aby rozpocząć tworzenie cząstek podstawy.

 Funkcja cząstek () {
  this.pos = CreatEvector (losowo (szerokość), losowa ((wysokość - 100)));
  to.Vel = CreatEvector (0, 0);
  this.acc = CreatEvector (0, 0);
  to.maxSpeed ​​= maxspeed;
  to.prevpos = ta.pos.copy (); 

Interactive 3D typography

Efekt, który jest tworzony, jest szeroko zaktualizowany przez bibliotekę P5.js, która umożliwia wielu pomocnikom do rysowania elementu płótna HTML5

02. Zaktualizuj cząstkę

Aby przesunąć cząstkę, funkcja aktualizacji zostanie uruchomiona każda ramka, będzie to spowodować prędkość cząstki i przyspieszenia prędkości. Prędkość będzie ostatecznie ograniczona przez zmienną globalną, która zostanie dodana później. Prędkość dodaje się do pozycji indywidualnej cząstki. Tworząc jedną cząstkę, kilka tysięcy zostanie utworzonych na ekranie w dowolnym momencie.

 ITS.UPDATE = FUNKCJA () {
  this.vel.add (w tym.acc);
  to.vel.limit (this.maxSpeed);
  to.pos.add (this.vel);
  ta.acc.mult (0);
  } 

03. Idź z przepływem

Aby dać cząstki ich płynący ruch, przestrzegana jest pole przepływu wytwarzane przez hałas. Funkcja stworzona tutaj umożliwia przekazanie wektora przepływu, a następnie będzie następuje, stąd nazwa tej funkcji. Siła kierunku wektora zostanie zastosowana do cząstki.

 to.Follow = Funkcja (wektory) {
  var x = podłoga (ta.pos.x / scl);
  var y = podłoga (this.pos.y / scl);
  var index = x + y * cols;
  var sile = wektory [indeks];
  this.applyforce (siła);
  } 

04. Postępuj, ale nie za ściśle

Aby zatrzymać wszystkie cząstki zgromadzone razem, co może łatwo zdarzyć się z tego rodzaju ruchem, cząstki będą miały bardzo niewielką ilość losowości dodanej do ich pozycji. Spowoduje to wystąpienie niewielkiej ilości rozpraszania.

 ITS.Catter = Funkcja (Wektory) {
  to.pos.x + = losowe (-0,9, 0,9);
  to.pos.y + = losowo (-0,9, 0,9);
  }
  ta.applyforce = funkcja (siła) {
  ta.acc.add (siła);
  } 

Interactive 3D typography

Podstawowy układ HTML5 i projektowanie CSS został utworzony z góry, abyś mógł skupić się na integracji płynnych linii efektu tekstowego w JavaScript

05. Wyświetl cząstkę

Funkcja Pokaż tutaj wyświetla cząstkę. Pierwszą rzeczą jest dodanie jednego uderzenia pikseli jasnoszarego koloru, aby utworzyć linię. Linia jest wyciągnięta z bieżącej pozycji do ostatniej pozycji w poprzedniej klatce. Poprzednia pozycja jest przechowywana na następny raz przez pętlę.

 ITS.SHOW = FUNKCJA () {
  udar (180);
  Uwolnienie (1);
  linia (ta.Pos.x, ta.pos.y, to.prevpos.x, this.prevpos.y);
  to.updatePrev ();
  }
  to.updatePrev = Funkcja () {
  to.prevpos.x = this.pos.x;
  to.prevpos.y = this.pos.y;
  } 

06. Owiń

Funkcja krawędzi działa, jeśli cząstka osiąga krawędź ekranu i, jeśli tak, okudzenia go, aby wejść po przeciwnej stronie. Ta sekcja zajmuje się pozycją X, więc wykrywa, czy jest większa niż szerokość ekranu, a następnie wysyłanie go do lewej krawędzi i odwrotnie.

 this.edges = Funkcja () {
  IF (this.pos.x & gt; szerokość) {
  this.pos.x = 0;
  to.updatePrev ();
  }
  Jeśli (ta.Pos.x & lt; 0) {
  this.pos.x = szerokość;
  to.updatePrev ();
  } 

07. Delight wrapper

Ten kod jest resztą wykrywania krawędzi i wykrywa cząstkę na osi Y dla górnej i dolnej części ekranu. Wsporniki wrapują całą klasę cząstek. Oznacza to, że przy użyciu tej klasy wielu cząstek można utworzyć.

 IF (ITS.POS.Y & GT; Height) {
  this.pos.y = 0;
  to.updatePrev ();
  }
  IF (ITS.POS.Y & LT; 0) {
  to.pos.y = wysokość;
  to.updatePrev ();
  }
  }
} 

08. Zrób wiele cząstek

Teraz, gdy cząstka jest tworzona nadszedł czas, aby pomyśleć o tworzeniu wielu cząstek. Aby zrobić ten cały nasz kod może przejść powyżej klasy funkcji cząstek. Oto wiele zmiennych globalnych są zadeklarowane, aby umożliwić uruchomienie systemu. Będą wywoływani w różnych czasach podczas kodu, więc można je zbadać.

 VAR INC = 0,1;
var scl = 100, zoff = 0;
var cols, rzędy, ruch = 0;
var cząstki = [];
Var Flowfield;
var img;
var maxspeed;
Var T, Calx = 0, Calce = 0, Currx = 0, Curry = 0, TargetX = 0, Targety = 0; 

09. Ustaw to wszystko

Funkcja konfiguracji, zadeklarowana tutaj, ustawia, w jaki sposób ekran będzie spojrzeć na początek. Pierwsze wykrywanie jest wykonane, aby zobaczyć, jaka jest szerokość ekranu. Jeśli jest stosunkowo duży, ładowany jest duży obraz, tworzony jest na płótnie, a to jest skalowane przez CSS, aby zmieścić się na wyświetlaczu.

 Konfiguracja funkcji () {
  IF (WindowWidth & GT; 1200) {
  img = Loadimage ("Aktywa / Studio.png");
  var canvas = createCanvas (1920, 630);
  maxspeed = 10,5;
  } 

Interactive 3D typography

Po utworzeniu klasy obiektu cząstek należy dodać liczbę cząstek do strony. Płynne linie można zobaczyć bez dodania efektu tekstowego

10. Inne ekrany

Reszta oświadczenia Jeśli sprawdza różne rozdzielczości ekranu i ładuje obraz, który jest najbardziej odpowiedni dla tego rozmiaru. Podobnie tworzone są różne elementy na płótnie. Ma to głównie zatrzymać mobilne radzenie sobie z większą ilością pikseli niż musi.

 Else If (WindowWidth & GT; 900) {
  img = LOADIMAGE ("Aktywa / Studio-We w wide.png");
  var canvas = createCanvas (1200, 394);
  SCL = 60;
  maxspeed = 7;
  } else {
  img = Loadimage ("Aktywa / Studio-Tallet-Tall.png");
  var canvas = createCanvas (700, 230);
  SCL = 40;
  maxspeed = 5;
  } 

11. Zrób siatkę

Po opracowaniu rozmiaru ekranu, płótno jest umieszczone wewnątrz znacznika nagłówka DIV w stronie index.html. Opiera się wiele kolumn i wierszy na podstawie szerokości i wysokości; To trochę jak niewidzialna siatka. Wreszcie tablica jest ustawiona na pole przepływu.

 Canvas.parent ("Header");
cols = podłoga (szerokość / scl);
wiersze = podłoga (wysokość / scl);
Flowfield = Nowa tablica (COLS); 

12. Zrób cząstki

Liczba cząstek jest ustawiona na podstawie szerokości ekranu - jeśli ekran ma szerokość 1920 pikseli, a następnie utworzone 2500 cząstek i przenosi się do w dół. A do pętli tworzy nowe cząstki. Kolor tła ekranu jest ustawiony na prawie pełny biały.

 Var Numparticles = Math.Floor ((2500/1920) * Szerokość);
  dla (Var I = 0; I & LT; Numparticles; I ++) {
  cząsteczki [i] = nowa cząstka ();
  }
  tło (245);
} 

13. Narysuj ekran

Wyniki wszystkich obliczeń są narysowane na ekranie każdej klatki w funkcji rysowania. Po pierwsze, jasnoszary prostokąt z bardzo niskim krycieszym wypełnia ekran, aby zniknąć, co zostało narysowane wcześniej. Po tym pojawi się wypełnienie jest wyłączone, ponieważ cząstki składają się z uderzeń, które nie wypełnią się.

 Funkcja Draw () {
  nosktrok ();
  wypełnić (245, 10);
  rect (0, 0, szerokości, wysokość);
  Nie wypełniać();
  var yoff = 0; 

14. Utwórz efekt przepływu

Aby uzyskać efekt przepływu, pojawiają się dwa "dla" pętli poruszających się przez wiersze i kolumny, aby zaktualizować wartości hałasu. Są one następnie zmieniane na kąty z wartości hałasu gotowe do aktualizacji cząstek dla każdej z pozycji na ekranie.

 Dla (var y = 0; rzby; y ++) {
  var xoff = 0;
  dla (var x = 0; x 

15. Zaktualizuj tablicę

Szereg przepływu jest aktualizowany pod kątem, a wartości są zwiększone, dzięki czemu przesunięcie każdej pozycji zostanie zwiększona za każdym razem, gdy wzrośnie. Może to wydawać się skomplikowane, ale naprawdę tworzy losowy ruch płynący dla cząstek, aby śledzić na ekranie.

 V.SetMag (1);
  Flowfield [Indeks] = V;
  XOFF + = INC;
  }
  yoff + = inc;
  Zoff + = 0,001;
  } 

Interactive 3D typography

Tekst jest teraz obecny i można zobaczyć płynące linie, wirujące wewnątrz tekstu projektu

16. Zaktualizuj cząstki

Teraz cząstki są zapętlone w ich tablicy. Każda pojedyncza cząstka powiedziano, aby śledzić pole przepływowe, aby zaktualizować, sprawdzić krawędzie ekranu, rozpraszają lekko i ostatecznie zostać narysowane na ekranie za pomocą funkcji Pokaż. Zapisz plik i przetestuj "index.html", aby zobaczyć cząstki poruszające się.

 dla (var i = 0; i cząstki. Length; i ++) {
  cząsteczki [i] .Follow (Flowfield);
  cząsteczki [I] .Update ();
  cząsteczki [I].
  cząsteczki [i] .scatter ();
  cząsteczki [i] .show ();
  }
} 

17. Dodaj tekst

Tekst jest maską umieszczoną na górze. Aby to zrobić, poprawny obraz jest umieszczony na górnej części cząstek. Dodaj ten kod przed klamrą zamykającą funkcji rysowania. Zapisz i sprawdź przeglądarkę, aby zobaczyć efekt pracujący teraz z tekstem.

 Obraz (img, 0, 0); 

Interactive 3D typography

Jeśli konstrukcja jest ładowana na mniejszych rozmiarach ekranów, liczba cząstek jest zmniejszona, ponieważ jest mniejszy ekran

18. Wykryj pozycję myszy

Odwołana jest pozycja myszy, a wartości X i Y są odwzorowane na kąty stopni, które można przesuwać. W osi Y będzie to -25 do 25 i odwrotnie dla osi X. Pozostały kod powinien zostać umieszczony po dodaniu ostatniego kodu przed końcem funkcji rysowania.

 Targety = math.round (mapa (Mousex, 0, szerokość, -25, 25));
TargetX = math.round (mapa (mowa, 0, wysokość, 25, -25)); 

19. Łatwość na miejsce

Stanowisko docelowe jest teraz podane trochę złagodzenie, aby stopnie powoli osiągnąć cel. Jest to tworzone przy użyciu klasycznego algorytmu łagodzącego zdejmowania bieżącej pozycji z miejsca docelowego i pomnożenie przez niską liczbę.

 VAR VX = (TargetX - Currx) * 0,05;
var vy = (Curry - curry) * 0,05;
calcx + = vx;
Calce + = VY; 

20. Napisz CSS

Zmienna "T" ma tutaj obliczone wartości i umieszcza je w ciągu CSS za pomocą wartości transformacji Rotatex i obrotu. Pozycja aktualna jest obliczana z pozycji, do której aktualnie obracany jest płótno.

 T = 'ROTATEX (' + Calx + 'DEG) Rotatey ("+ Calce +" DEG)';
Currx = Calcx;
Curry = Calce; 

Interactive 3D typography

Ostateczna sekcja kodu pobiera pozycję myszy i stosuje transformację CSS do elementu płótna. Obraca się to płótno w kierunku myszy w przestrzeni 3D

21. Wykończ

Teraz CSS jest stosowany do elementu płótna w tym kodzie. Zapisz stronę i podgląd w przeglądarce. Teraz mysz w pełni aktualizuje obrót płótna, aby zmienia się, jak porusza się mysz. Oczywiście wszystkie cząstki w tej przestrzeni poruszają się z nim na ekranie.

 Canvas.style.webkittransform = t;
płótno.style.mstransform = t;
canvas.style.transform = t; 

Ten artykuł został pierwotnie opublikowany w kreatywnym projektowaniu stron internetowych projektantów projektowania stron internetowych. Kup wydać 271. lub Subskrybuj .

Powiązane artykuły:

  • 70 najlepszych darmowych czcionek dla projektantów
  • 6 kroków do idealnego przeczytania online
  • Darmowe narzędzie online pokazuje, co może zrobić twoje czcionki

Jak - Najpopularniejsze artykuły

Jak używać obrazów referencyjnych: 13 podstawowych wskazówek dla artystów

Jak Sep 11, 2025

(Kredyt obrazu: Jonathan Hastsy) Strona 1 z 2: Strona 1 Stron..


Jak KitBash w podróży z Shapr3D

Jak Sep 11, 2025

(Kredyt obrazu: Adam Dewhirst) Shapr3d to świetne narzędzie do KitBashing. Pomaga dosłownie zabić pomysły i prod..


Utwórz efekty kolażu w przeglądarce CSS

Jak Sep 11, 2025

Jeśli kiedykolwiek życzyłeś, możesz odpowiedzieć efekty tradycyjnej Maker kolaż w Twoim Układy str..


10 Niesamowite rzeczy, które możesz zrobić z warstwami

Jak Sep 11, 2025

Warstwy są tym, co umożliwia budowanie projektu od wczesnych fundamentów do wykończenia. Trudno w to teraz uwierzyć, ale nie..


Jak utworzyć fotorealistyczną scenę pokoju

Jak Sep 11, 2025

Chcesz wiedzieć, jak stworzyć realistyczną przelotową architektury 3D, ale nie ma pewności, gdzie skupić swoje wysiłki w r..


Jak opanować anatomię stworzenia

Jak Sep 11, 2025

Jeśli chodzi o rysunek wiarygodnych stworzeń , Musisz skupić się na systemach szkieletowych, mięśniowych i n..


Jak malować fantasy bestie

Jak Sep 11, 2025

Po wejściu na pomysł na stwór fantasy, następnym krokiem jest doprowadzenie do życia, malując go z wiarygodnymi kolorami i ..


Jak wybrać odpowiednie narzędzie prototypowe

Jak Sep 11, 2025

Prototypowanie jest być może jedną z najważniejszych części procesu projektowania stron internetowych. Budując..


Kategorie