Tło podążające za myszką

Przedstawiam ciekawy efekt osiągnięty z pomocą jQuery, który sprawia, że tło jakby podąża za ruchem myszki. Można tego użyć ustawiając zdjęcie o dużej rozdzielczości za treścią strony, uzyskując w ten sposób namiastkę przestrzenności.

Tło domyślnie jest wycentrowane, a podczas wykonywania jakichkolwiek ruchów kursorem zostaje odchylone w tę samą stronę, w którą przesunęła się myszka.

Dodatkowo posłużyłem się zmienną divisor, w której trzymam wartość, przez którą zostaje podzielone przesunięcie – jeżeli jest w zakresie od 0 do 1 to tło przesuwa się szybciej niż kursor, a jeśli zmienna jest większa od 1 – tło przesuwa się wolniej (2 razy wolniej dla 2, 3 razy wolniej dla 3 itd.). W przypadku ustawienia divisor na 1, tło będzie się przesuwało w takim samym tempie co mysz.

Kod JS całości (oprócz tego należy załączyć jQuery!):

$(window).load(function() {

	$('.bg').on('mousemove', function(e) {
        var divisor = 4;
	    var bgWidth = 1024;
		var bgHeight = 768;
		var mousePosX = e.pageX - $(this).offset().left;
		var mousePosY = e.pageY - $(this).offset().top;
		var mouseMoveX = (mousePosX - $(this).width()/2)/divisor;
		var mouseMoveY = (mousePosY - $(this).height()/2)/divisor;
		$(this).css('background-position', (-(bgWidth-$(this).width())/2+mouseMoveX)+'px '+(-(bgHeight-$(this).height())/2+mouseMoveY)+'px');
	});

});

Element, którego tło ma reagować otrzymał w powyższym przykładzie klasę bg. Bardzo ważne jest, aby ustawić ręcznie szerokość i wysokość obrazka. Na podstawie jego i rozmiarów okna przeglądarki obliczane są przesunięcia.

Samo tło ustawiamy używając CSS i background lub background-image. Poniżej demo.

Polecam też wybróbować dodanie minusa dla zmiennych mouseMoveXmouseMoveY – da nam to bardzo fajny rezultat, zdjęcie będzie poruszało się w kierunkach przeciwnych.

komentarze 23 do “Tło podążające za myszką”

Skomentuj

CommentLuv