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

Niedziałający Hover/mousemove itp [JS/ JQuery]

Object Storage Arubacloud
0 głosów
174 wizyt
pytanie zadane 11 września 2018 w JavaScript przez Oskar Szkurłat Bywalec (2,780 p.)

Witam, mam problem z hoverem i jego pochodnymi w JQuery i JS. 
Potrzebuję zrobić ukryty div o ID 'Pole' (przezroczysty): po najechaniu na który zostaje dodana klasa do innych dwóch divów o ID 'EyesID'.
Zejście kursorem z 'Pole' usuwa klasę. Klasa ta zawiera zdefiniowaną animację (BlinkingEyesAnimationCSS).
Gdzie występują błędy w poniższej metodzie? Czy byłby w stanie ktoś mi przedstawić inne rozwiązanie działające?
 

<div class='eye' id="EyesID"></div>
<div class='eye' id="EyesID"></div>
<div class="InvisibilityDivToBlinkEyesOfTheSun" id="Pole"></div>
$('#Pole').hover(
       function(){ $('#EyesID').addClass('BlinkingEyesAnimationCSS') },
       function(){ $('#EyesID').removeClass('BlinkingEyesAnimationCSS') }
);
.BlinkingEyesAnimationCSS
{
    /* Safari 4.0 - 8.0 */
    -webkit-animation-name: example;
    -webkit-animation-duration: 3s;
    -webkit-animation-timing-function: linear;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-direction: alternate;
    /* Standard syntax */
    animation-name: example;
    animation-duration: 3s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    animation-direction: alternate;
}

Gdzie popełniłem błąd? :) Z góry dziękuję

3 odpowiedzi

+1 głos
odpowiedź 11 września 2018 przez obl Maniak (51,280 p.)

Nie wiem, czy o to chodzi, ale masz dwa elementy o takim samym ID więc nie będzie to ci działało poprawnie. ID musi być unikalne  w skali danego pliku HTML. Jak chcesz odwoływać się do dwóch elementów to wykorzystujesz atrybut class

komentarz 11 września 2018 przez Oskar Szkurłat Bywalec (2,780 p.)
Niestety to nie pomaga dalej w rozwiązaniu problemu, ale dziękuję, bo słuszna uwaga. :)
+1 głos
odpowiedź 11 września 2018 przez pablop76 VIP (123,120 p.)
Gdzie ta animacja (@keyframes example)?
komentarz 11 września 2018 przez Oskar Szkurłat Bywalec (2,780 p.)

@-webkit-keyframes example {
    75% {
		width: 40%;
		
	}
    100% {
		width: 5%;
		}
}
@keyframes example {
    75% {
		width: 40%;
		}
    100% {
		width: 5%;
		}
}

Wybacz, nie zauważyłem, że nie podałem :)

+1 głos
odpowiedź 11 września 2018 przez Grzegorz :> Dyskutant (8,050 p.)
edycja 11 września 2018 przez Grzegorz :>
Wrzuć cały kod, to postaram się bardziej pomóc. Ale z tego co widzę zamiast :
$('#Pole').hover(
 function(){ $('#EyesID').addClass('BlinkingEyesAnimationCSS') },
 function(){ $('#EyesID').removeClass('BlinkingEyesAnimationCSS')
});
Powinieneś zrobić:
$('#Pole').mouseenter(function(){
$('#EyesID').addClass('BlinkingEyesAnimationCSS');
});
$('#Pole').mouseleave(function(){
$('#EyesID').removeClass('BlinkingEyesAnimationCSS');
});

Nie dawaj dwóm obiektom tego samego ID, od tego są klasy :^)

Pokaż też tę animację na @keyframe

Wydaje mi się, że powinno być ok, ale wrzuć caly kod, chętnie zobaczę efekt końcowy :D Powodzenia!
komentarz 11 września 2018 przez Oskar Szkurłat Bywalec (2,780 p.)
	$('#Pole').mouseenter(function(){
			$('#EyesID1').addClass('BlinkingEyesAnimationCSS')
			$('#EyesID2').addClass('BlinkingEyesAnimationCSS')
	});
	$('#Pole').mouseleave(function(){
			$('#EyesID1').removeClass('BlinkingEyesAnimationCSS')
			$('#EyesID2').removeClass('BlinkingEyesAnimationCSS')
	});

Niestety też nie pomogło :(

animacja w sobie sama działa bez zarzutów (wrzuciłem komentarz wyżej).

1
komentarz 11 września 2018 przez Grzegorz :> Dyskutant (8,050 p.)
Zgubiłeś po drodze średniki po każdej linijce w środku funkcji :^)

Jak napisałem wcześniej, wrzuć caly kod w jednym kawałku (np link do pastebina) to zobaczę o co chodzi :>
1
komentarz 11 września 2018 przez Grzegorz :> Dyskutant (8,050 p.)
Powiedz czy o to Ci chodziło:
https://pastebin.com/M8EawAd1
1
komentarz 11 września 2018 przez Oskar Szkurłat Bywalec (2,780 p.)
edycja 11 września 2018 przez Oskar Szkurłat
Dokładnie tak miało działać, ale właśnie zauważyłem, że ja potrzebuję dać class nie .eye, lecz .eye:after
Z racji tego, że łączę kilka rzeczy w jedną, możliwe, że stąd wynikają moje problemy.
Co ciekawe nawet, gdy poprawiłem jquery, dalej nie włączało animacji na mojej stronie (nawet na nie tym co trzeba divie) - na tym co mi wysłałeś działa.
Podrzucam link do tego jak to u mnie wygląda:
https://pastebin.com/teStrynp

Z prawej strony są oczy podążające za kursorem, a na środku szary div. To właśnie na nim chciałbym uruchamiać animację mrugania.

Podobne pytania

0 głosów
2 odpowiedzi 539 wizyt
pytanie zadane 27 września 2017 w JavaScript przez Radek Begej Użytkownik (580 p.)
+1 głos
1 odpowiedź 197 wizyt
pytanie zadane 4 listopada 2017 w JavaScript przez lastavenger Obywatel (1,060 p.)

92,555 zapytań

141,403 odpowiedzi

319,554 komentarzy

61,940 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!

...