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 .
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.
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 ();
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);
}
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);
}
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);
}
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;
}
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 ();
}
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 ();
}
}
}
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;
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;
}
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;
}
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);
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);
}
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;
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
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;
}
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 ();
}
}
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);
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));
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;
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;
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:
(Kredyt obrazu: Jonathan Hastsy) Strona 1 z 2: Strona 1 Stron..
(Kredyt obrazu: Adam Dewhirst) Shapr3d to świetne narzędzie do KitBashing. Pomaga dosłownie zabić pomysły i prod..
Jeśli kiedykolwiek życzyłeś, możesz odpowiedzieć efekty tradycyjnej Maker kolaż w Twoim Układy str..
Warstwy są tym, co umożliwia budowanie projektu od wczesnych fundamentów do wykończenia. Trudno w to teraz uwierzyć, ale nie..
Chcesz wiedzieć, jak stworzyć realistyczną przelotową architektury 3D, ale nie ma pewności, gdzie skupić swoje wysiłki w r..
Jeśli chodzi o rysunek wiarygodnych stworzeń , Musisz skupić się na systemach szkieletowych, mięśniowych i n..
Po wejściu na pomysł na stwór fantasy, następnym krokiem jest doprowadzenie do życia, malując go z wiarygodnymi kolorami i ..
Prototypowanie jest być może jedną z najważniejszych części procesu projektowania stron internetowych. Budując..