ruchome tło strony, elementu
Tematem jaki tym razem chce poruszyć jest tło poruszające się za kursorem myszy. W praktyce końcowym efektem będzie tło będzie podrożało podążające za ruchem myszki odsłaniając lub chowając fragmenty obrazu, zdjęcia lub grafiki umieszczonej w tle. Efekt ten można użyć jako np. tło elementu lub całej sekcji strony.
Przejdźmy zatem do pracy.
Jak praktycznie zawsze zaczynamy od budowy podstawy w moim przypadku będzie ona oparta o HTML (a następnie rozbudowana). Dlatego pokażę tutaj jedynie część wspólną kodu. Tak wiec zaczniemy ją od deklaracji kontenera, w którym będziemy umieszczać ruchome tło.
<div class="moveContainer" id="moveContainer"></div> W moim przykładzie kontener z mobilnym tłem nie będzie mieć zawartości, przynajmniej na razie by nie odwracała ona uwagi od samego efektu. Dodatkowo kod będzie bardziej czytelny.
W kolejnym kroku dodam do mojego nowego kontenera tło. Na początek oczywiście będzie to zwykłe tło, grafika nad, którą w kolejnych etapach posłuży do uzyskania efektu.
.moveContainer{
background-image: url(bg-image.jpg);
} To oczywiście tylko fragment ostatecznego kodu. W końcu kontener trzeba będzie też ustawić. Na chwilę obecną nie ma on bowiem nadanej wysokości. W praktyce więc jest płaski i nic się nam nie wyświetli.
warto przeczytać -> Jak umieścić grafikę w tle strony
Teraz pra na kod JS, dodający animacje.
const el = document.querySelector("#moveContainer");
el.addEventListener("mousemove", (e) => {
el.style.backgroundPositionX = -e.offsetX + "px";
el.style.backgroundPositionY = -e.offsetY + "px";
}); Po złożeniu kodu otrzymałam:
Istnieje też możliwość ograniczenia działania JS (javaScript) i częściowe zastąpienie go CSS. W takiej sytuacji kod będzie trochę się różnił od tego co umieściłam powyżej:
Po pierwsze skrócimy kod JS do minimum:
const el = document.querySelector("#moveContainer");
el.addEventListener("mousemove", (e) => {
el.style.setProperty('--x', -e.offsetX + "px");
el.style.setProperty('--y', -e.offsetY + "px");
}); Następnie dodamy nowe parametry do kodu CSS:
.moveContainer{
--x: 0px;
--y: 0px;
background-image: url(bg-image.jpg);
background-position: var(--x) var(--y);
} Jak widać pojawiło się tutaj kilka ciekawych właściwości CSS, które na co dzień rzadko lub w ogóle nie są używane. Odpowiadają one za pozycjonowanie grafiki w kontenerze.
Źródła:
Jak w przypadku wielu różnych tematów tak i w przypadku marki osobistej pojawiło się przez…
Choć zabrzmi to może nieco dziwnie to wprowadzenie AI (sztucznej inteligencji) do naszego życia było…
Widmo Brockenu to dość rzadko spotykane zjawisko optyczne, najczęściej widywane w wysokich partiach gór. Można…
Zacznę może od tego, że relikwia, relikwii nie równa. Wiem jeśli nie ma się pojęcia…
Logo stanowi jeden z ważniejszych elementów tożsamości wizualnej praktycznie każdej firmy, marki czy projektu. Logo…
Budując własną markę osobistą lub chcąc ją zbudować trzeba liczyć się z wieloma wyzwaniami. Jednym…