• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Animowane przyklejane menu

Object Storage Arubacloud
0 głosów
365 wizyt
pytanie zadane 12 września 2016 w HTML i CSS przez Madar Obywatel (1,560 p.)

Witam
Piszę stronkę, mniej więcej taką: 
https://blackrockdigital.github.io/startbootstrap-agency/

I natknąłem się na problem, ostatnio mi bardzo pomogliście, więc mam nadzieję, że i tym razem mogę na was polegać :)

Więc do rzeczy. Chodzi o animowane menu sticky. Miałem pewną koncepcję jak to zrobić, ale nie wiem czy jest ona do końca poprawna. Poniżej podaję kod:

 

<!doctype html>
<html>
	<head>
		<link rel="stylesheet" type="text/css" href="style.css">
	</head>
	<body>
		<div class="menu__fixed--hidden"></div>
		<h1>Lorem ipsum.</h1>
		<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab expedita corporis consectetur impedit aliquam laborum quidem nostrum placeat atque odio!</p>
		<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Facere officiis architecto, dolore ullam consectetur fuga fugiat est amet. Quos, omnis ipsam repellat perferendis laboriosam consequatur odio et tempore nesciunt, atque harum totam, animi aliquid cum sapiente beatae numquam doloremque dolores.</p>
		<h2>Lorem ipsum dolor.</h2>
		<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Officiis aut consequuntur aliquam, ipsa eius sint, ex molestiae repellendus veritatis labore quo odio, optio velit non nemo ipsum asperiores nam ullam. Nihil necessitatibus repellat, in molestias voluptatum ad incidunt nisi sint corporis dignissimos eligendi facilis quisquam autem tenetur suscipit ullam quibusdam!</p>
		<h1>Lorem ipsum.</h1>
		<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab expedita corporis consectetur impedit aliquam laborum quidem nostrum placeat atque odio!</p>
		<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Facere officiis architecto, dolore ullam consectetur fuga fugiat est amet. Quos, omnis ipsam repellat perferendis laboriosam consequatur odio et tempore nesciunt, atque harum totam, animi aliquid cum sapiente beatae numquam doloremque dolores.</p>
		<h2>Lorem ipsum dolor.</h2>
		<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Officiis aut consequuntur aliquam, ipsa eius sint, ex molestiae repellendus veritatis labore quo odio, optio velit non nemo ipsum asperiores nam ullam. Nihil necessitatibus repellat, in molestias voluptatum ad incidunt nisi sint corporis dignissimos eligendi facilis quisquam autem tenetur suscipit ullam quibusdam!</p>
		<h1>Lorem ipsum.</h1>
		<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab expedita corporis consectetur impedit aliquam laborum quidem nostrum placeat atque odio!</p>
		<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Facere officiis architecto, dolore ullam consectetur fuga fugiat est amet. Quos, omnis ipsam repellat perferendis laboriosam consequatur odio et tempore nesciunt, atque harum totam, animi aliquid cum sapiente beatae numquam doloremque dolores.</p>
		<h2>Lorem ipsum dolor.</h2>
		<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Officiis aut consequuntur aliquam, ipsa eius sint, ex molestiae repellendus veritatis labore quo odio, optio velit non nemo ipsum asperiores nam ullam. Nihil necessitatibus repellat, in molestias voluptatum ad incidunt nisi sint corporis dignissimos eligendi facilis quisquam autem tenetur suscipit ullam quibusdam!</p>

		<script src = "js.js"></script>
	</body>
</html>
body	{
	background: #AAAAAA;
	color:white;
	margin:0;
}
p 	{
	font-size:1.6rem;
}
h1 	{
	color:#000000;
}
h2 {
	color:#111111;
}

.menu__fixed--hidden	{
	width:100%;
	height:5rem;
	background: #000000;
	position:fixed;
	top:0;
	display:none;
}

.open	{
	display:block;
	background: #fff;
}
(function()	{

var add__class = document.querySelector(".menu__fixed--hidden");

document.addEventListener('scroll', function()	{
	if (document.body.scrollTop >=20)	{
		add__class.classList.add("open");
	}	else 
		add__class.classList.remove("open");
	
}, false);
})();

 

Stworzyłem prototyp, zeby sprawdzic czy tak się w ogóle da to rozwiązać. Otóż JS działa, gdyż po zescrollowaniu na 20px tworzy klasę "open", która wyświetla menu ustawione pozycją fixed caly czas u góry. Chciałbym jednak, aby to odbyło się w sposób jak na stronie w załączonym linku. Próbowałem dodać transition, ale nie zadziałało. Czy ktoś ma pomysł na to, jak można to rozwiązać?

2 odpowiedzi

+1 głos
odpowiedź 12 września 2016 przez mitelak Pasjonat (23,330 p.)
Prawie wszystko masz dobrze, tylko na display block nie działa transition, a na stronie przykładowej zmienia się padding elementów w środku przez co wygląda to jak animowane ;)
Jeżeli chcesz żeby belka Ci się animowała cała (na przykład zjeżdżała na dół) to najlepiej zrobić sobie animacje @keyframes, która zmieniać będzie opacity i transitionY ;)

edit// lepszym rozwiązaniem jest zrobienie sobie menu takiego jak będzie wyglądać i później dodanie klasy po zjechaniu i przez tą klase zmienić wygląd menu i dodać fixed
komentarz 12 września 2016 przez Madar Obywatel (1,560 p.)
Ok, spróbuję pokombinować, jak się uporam z problemem, wrzucę na forum efekt końcowy, żebyście ocenili, a może komuś się przyda :)
0 głosów
odpowiedź 12 września 2016 przez Filip31411 Dyskutant (8,820 p.)

Chciałbym jednak, aby to odbyło się w sposób jak na stronie w załączonym linku.

 Chodzi Ci o animację?

komentarz 12 września 2016 przez Madar Obywatel (1,560 p.)
Tak
komentarz 13 września 2016 przez Filip31411 Dyskutant (8,820 p.)

Możesz zamiast podpinania klasy css animować ten element np. przez jQuery:

http://api.jquery.com/animate/

Podobne pytania

0 głosów
2 odpowiedzi 1,133 wizyt
pytanie zadane 17 lutego 2018 w HTML i CSS przez kurczakmaly Nowicjusz (120 p.)
0 głosów
1 odpowiedź 610 wizyt
+1 głos
0 odpowiedzi 8,194 wizyt

92,576 zapytań

141,426 odpowiedzi

319,650 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...