Po prostu natknąłem się na http://www.newego.de/ i chciałbym wiedzieć, jak działa "efekt slajdów obrazu", którego używają na początkowej stronie.Jak uzyskać w pełni działający efekt przewijania obrazu, jak w tym przykładzie?
Po przewinięciu w górę zmienia się obraz tła i po przejściu przez wszystkie slajdy ze strony "wstępnej/powitalnej" użytkownik jest kierowany do głównej zawartości witryny.
Próbowałem odtworzyć efekt z ciekawości i dla celów edukacyjnych, dlatego ostatnio zacząłem kopać w responsywny projekt strony internetowej, ale utknąłem i nie jestem pewien, czy moje podejście jest dobrym rozwiązaniem.
This JSFiddle to jak daleko zajmuję się podczas próby odtworzenia suwaka obrazu.
$(window).bind('mousewheel DOMMouseScroll', function(event){
if (event.originalEvent.wheelDelta > 0 || event.originalEvent.detail < 0) {
console.log('scrolling down');
}
else {
console.log('scrolling up');
$('.s1').slideUp('slow');
}
});
* { margin: 0; padding: 0 }
#menubar {
width: 100%;
background-color: orange;
height: 60px;
}
.slide {
position: absolute;
width: 100%;
top: 60px;
bottom: 0;
}
.slide.s1 { background-color: green; }
.slide.s2 { background-color: red; }
.slide.s3 { background-color: cornflowerblue; }
.l1 { z-index: 3; }
.l2 { z-index: 2; }
.l3 { z-index: 1; }
<script src="https://code.jquery.com/jquery-3.0.0.min.js"></script>
<html>
<body>
<header id="menubar"><p>hi im a header</p></header>
<section class="slide s1 l1"><p>im the first</p></section>
<section class="slide s2 l2"><p>im the second</p></section>
<section class="slide s3 l3"><p>im the third</p></section>
</body>
</html>
Moje myślenie było po prostu umieścić trzy .slide
pojemnika, który wypełni w „pustej przestrzeni rzutni” na górze siebie, z wykorzystaniem hierarchii z-index
a potem po prostu ślizgać się najwyższą .slide
kontener za pomocą funkcji jQuery's .slideUp()
.
Nie jestem jednak pewien, czy to dobry pomysł, ponieważ nie wiem, jak wybrać najwyższy kontener , aby móc go zanikać.
Czy istnieje bardziej proste (i jeśli to możliwe, bardziej modułowe) podejście, które powinienem realizować? Czy istnieje skuteczny sposób (selektor jQuery/CSS), aby znaleźć najbardziej widoczny obiekt z najwyższej półki.slide
?
Dziękuję, twoje rozwiązanie jest czymś, czego szukam. Tylko jeden problem, którego nie potrafię wskazać: kiedy bardzo mocno przewijam kółko myszy (na przykład rejestruje się więcej niż jeden przewijak myszy), wszystko działa dobrze, jeden slajd ślizga się, a następna warstwa ujawnił. Ale kiedy robię to samo, przewijając kółko myszy, kolejne slajdy są ślizgane jednocześnie. Aby odtworzyć, przejdź do [JSFiddle] (https://jsfiddle.net/d1xzc4jf/7/) przewiń do zielonej warstwy, a następnie bardzo mocno przewiń koło. Jak zezwolić na przesuwanie po zakończeniu pierwszej animacji? – phew
Zmieniłem moją odpowiedź, dodając zmienną, która jest ustawiana, gdy animacja się uruchamia i jest resetowana po jej zakończeniu, zapobiegając podwójnej animacji, jeśli przewijasz mocno. Zaktualizowane JSFiddle tutaj: https://jsfiddle.net/d1xzc4jf/8/ –
Dla mnie czasami utknie na zielonej stronie, ale mam twój punkt widzenia. Zobaczę, czy uda mi się wymyślić coś podobnego na własną rękę. Dziękuję za pomoc! – phew