Stworzenie animowanego banneru który będzie przemieszczał się po naszym ekranie w różnych kierunkach wcale nie jest rzeczą trudną do zrobienia. Do wykonania naszego zadania wystarczy nam 1 plik html w którym umieścimy nasz obraz oraz kod javascript, który będzie odpowiadał za poruszanie nim.
Zaczniemy od dodania naszego banneru do kodu html. Nadajemy mu id „animacja” do którego będziemy się później odwoływali w kodzie javascript. Dodajemy także funkcje „link();” która po kliknięciu w banner przeniesie nas do wybranej strony.
1 | <img src="banner.png" id="animacja" style="position:absolute;" onClick="link();" alt="Nasz banner"> |
Następnie pod obrazkiem dodajemy kod javascript odpowiedzialny za przemieszczanie się naszego obrazka po ekranie. Każda linijka poniższego kodu została opatrzona komentarzem znajdującym się po znakach ” // ” w celu łatwiejszego zrozumienia działania skryptu. Kod mógłby być o wiele mniej rozbudowany, jednak nie chcemy przecież by nasz banner znikał gdzieś za granicami monitora… dlatego też gdy dotknie on granic okna naszej przeglądarki, odbije się i zacznie on poruszać się w drugą stronę.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | <script> var xPos = 0; // Początkowe X var yPos = 0; // Początkowe Y var step = 1; // Odległość jaka pokonuje obrazek z każdą klatką animacji var delay = 10; // Co ile milisekund następuje kolejna klatka animacji var yon = 1; // Włączone przemieszczanie pionowe var xon = 1; // Włączone przemieszczanie poziome function changePos() { width = document.body.clientWidth; // Szerokosc ekranu height = document.body.clientHeight; // Wysokosc ekranu Hoffset = animacja.offsetHeight; // Wysokosc obrazka Woffset = animacja.offsetWidth; // Szerokosc obrazka animacja.style.left = xPos + document.body.scrollLeft; // Przypisanie "marginesu" od lewej animacja.style.top = yPos + document.body.scrollTop; // Przypisanie "marginesu" od góry if (yon == 1) { // Jeśli przemieszczanie w pionie włączone yPos = yPos + step; // Zwiekszenie "marginesu" od góry } else { // Jeśli przemieszczanie w pionie wyłączone yPos = yPos - step; // Zmniejszenie "marginesu" od góry } if (yPos < 0) { // Jeśli obrazek próbuje przejechać przez górę obszaru yon = 1; // Włącz przemieszczanie w pionie yPos = 0; // Ustaw go przy górnej krawędzi obszaru } if (yPos >= (height - Hoffset)) { // Jeśli obrazek próbuje przejechać przez dół obszaru yon = 0; // Wyłącz przemieszczanie w pionie yPos = (height - Hoffset); // Ustaw go na dole obszaru } if (xon == 1) { // Jeśli przemieszczanie w poziomie włączone xPos = xPos + step; // Zwiekszenie "marginesu" od lewej } else { // Jeśli przemieszczanie w poziomie wyłączone xPos = xPos - step; // Zmniejszenie "marginesu" od lewej } if (xPos < 0) { // Jeśli obrazek próbuje przejechać przez lewy bok obszaru xon = 1; // Włącz przemieszczanie w poziomie xPos = 0; // Ustaw go przy krawędzi lewego boku obszaru } if (xPos >= (width - Woffset)) { // Jeśli obrazek próbuje przejechać przez prawy bok obszaru xon = 0; // Wyłącz przemieszczanie w poziomie xPos = (width - Woffset); // Ustaw go przy prawej krawędzi obszaru } } setInterval('changePos()', delay); // Animuje klatkę co daną ilość milisekund function link() { // Po kliknięciu na obrazek window.location.href = "http://www.fx-team.fulara.com"; // Przenosi do wybranej strony www } </script> |
[…] http://fx-team.fulara.com/animowany-banner-javascript/ […]