Nieumiejętne korzystanie z if w jQuery

0

Witam, przejdę od razu do rzeczy, mój problem polega na tym, że chce mieć tekst któy po przeskrolowaniu jakieś tam wysokości przesuwa sie w inne miejsce. (Potrafie to zrobic). Problem tego posta polega na tym, iż menu na stronie jest typu mobilnego kwadrat (hamburger) a po kliknieciu zaciemnia sie cala strona. Tu rodzi sie problem. Gdy strona sie przewija przewija sie tez "PO" wlaczeniu menu.

Za przezroczystosc w menu odpowiada klasa .topOverlay ma ona ustawiona opacity na 0 gdy menu jest nie klikniete i 1 gdy je klikamy. Mój pomysl jest taki: Dodac shrink(klase odpowiadajaca za zmiane) tylko wtedy gdy opacity jest 0. Napisalem taki kod, na podstawie wiadomosci z neta, lecz nie dziala niestety. Prosił bym o pomoc i wskazanie błędu.

$(document).on("scroll", function(){
		if($(document).scrollTop() > 220 ){
		// $('header span.name').addClass('shrink'); 
		
		if($(document).find('.topOverlay').is('opacity: 0')){
		 $('header span.name').addClass('shrink');
		}
		else{
			$('header span.name').removeClass('shrink');
		}
		
		}
		
	});
0

Nie możesz po prostu przy aktywacji menu nadać reszcie strony overflow: hidden?

0

Niestety nie, gdyż blokuje się przewijanie menu. (dużo podkategorii)

clik guzik... $('header span.name.shrink').css('overflow','hidden'); ...

Coś takiego jak powyżej chodź by było fajne nie ukrywa tekstu.

0

Ta opcja z opacity też chyba nie zadziala:

$(function(){
 var shrinkHeader = 220;
  $(window).scroll(function() {
    var scroll = getCurrentScroll();

      if ( scroll >= shrinkHeader ) {
		   $('header span.name').addClass('shrink');  
		   console.log('add');
        }
        else {
            $('header span.name').removeClass('shrink');
			   console.log('remove');
        }
	
	  if($('top-overlay').css('opacity','1')){
		  $('header span.name').removeClass('shrink');  
		  console.log('remov gut');
	}
  });

Konsola zwraca:

add
menu.js (wiersz 95)
remov gut
menu.js (wiersz 104)
add
menu.js (wiersz 95)
remov gut
menu.js (wiersz 104)
add
menu.js (wiersz 95)
remov gut
menu.js (wiersz 104)
add
menu.js (wiersz 95)
remov gut
menu.js (wiersz 104)
add
menu.js (wiersz 95)
remov gut
menu.js (wiersz 104)
add
menu.js (wiersz 95)
remov gut
menu.js (wiersz 104)
add
menu.js (wiersz 95)
remov gut
menu.js (wiersz 104)
add
menu.js (wiersz 95)
remov gut
menu.js (wiersz 104)

Myślalem ze to wina jakiegos transtion w css lecz nie.. nie wiem nawet juz jak odroznic czy jest czy nie ma overlay i czemu ten hidden nie dziala.

1 użytkowników online, w tym zalogowanych: 0, gości: 1