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

SLIDER na stronie JavaScript - auto przewijanie problem

+1 głos
901 wizyt
pytanie zadane 21 lipca 2020 w JavaScript przez Bartosz Tobiasz Nowicjusz (240 p.)

Hej forumowicze! 
Jest taka sprawa...

Robiłem sobie ostatnio slider zdjęć używając HTML'a, CSS's i JavaScript'u.
Wszystko działało pięknie. Postanowiłem mój projekt wzbogacić jednak o animacje i przejścia zdjęć.
Udało się, lecz nagle funkcjonalność mojego slider'a - Auto przewijanie zdjęć - przestała działać!
W momencie kiedy chcę uruchomić automatyczne przewijanie zdjęć wszystko jest w porządku, ale gdy chcę wyłączyć nie dzieje się to.
Dlaczego? Pomocy!

Funkcjonalność - Auto przewijanie zdjęć

  • tag label połączony z checkbox'em
  • atrybut onclick i wywołanie funkcji sparwdzjącej (isChecked)
  • wywołanie setInterval() lub clearInterval()

 

/ /Check is checkBOX checked and run right function
function isChecked() {
	const cb = document.getElementById('auto_save');
	const checkIt = cb.checked;
	if (checkIt == true)
	{
		myStartFunction();
	} else {
		myStopFunction();
	}	
}

// Start Auto Change Image
function myStartFunction() {
  const myVar = setInterval(nextImg, 3500);
}

// Stop Auto Change Image
function myStopFunction() {
  clearInterval(myVar);
}
<input type="checkbox" onclick="isChecked()" id="auto_save"class="checkbox-auto_save">
<label for="auto_save" class="label-checkbox">Auto przewijanie zdjęć</label>
@keyframes animation-img 
{	
	from
	{
		transform: scale(2);
		opacity: .5;
		filter: sepia(45%);	
	}
	to 
	{
		transform: scale(1);
		opacity: 1;
		filter: sepia(0%);	
	}
}
  
.animation-img 
{
	animation: animation-img .8s ease-in forwards;
}
//Dodawanie klasy z animacją
slide.classList.add('animation-img');

//Usuwanie klasy z animacją po zakończeniu animacji
setTimeout(() => slide.classList.remove('animation-img'), 800);

 

Slider na STRONIE www: https://mojslider.000webhostapp.com/

RESZTA KODU: https://drive.google.com/drive/folders/1v4Zp94KBs3Q0JEuM6qOJM3MKXqvqM_Pd?usp=sharing

 

 

Proszę o wyrozumiałość - jestem początkującym i dopiero zaczynam swoją przygodę.

Z góry dziękuję za każdą podpowiedź/odpowiedź.


 

1 odpowiedź

+1 głos
odpowiedź 21 lipca 2020 przez pablop76 VIP (123,640 p.)
edycja 21 lipca 2020 przez pablop76

W konsoli masz błąd  

 myVar is not defined

Z tego co widzę to  zadeklarowałeś myVar w funkcji  myStartFunction czyli lokalnie, więc nie masz do niej dostępu w funkcji myStopFunction

komentarz 21 lipca 2020 przez Bartosz Tobiasz Nowicjusz (240 p.)

Usunąłem z tego zapisu "const":

// Start Auto Change Image
function myStartFunction() {
  const myVar = setInterval(nextImg, 3500);
}

I zrobiłem to tak:

// Start Auto Change Image
function myStartFunction() {
  myVar = setInterval(nextImg, 3500);
}

I wszystko już działa!

Dzięki :D

komentarz 21 lipca 2020 przez Bartosz Tobiasz Nowicjusz (240 p.)

@pablop76,

A i jeszcze jedno..

Dlaczego to działa?

Przecież nie deklaruje zmiennej poza funkcją. Skąd druga drugą funkcja wie o jej istnieniu?

Dlaczego nie działa mi za to na stronie www?

Lokalnie na komputerze śmiga a na hostingu już nie.

komentarz 21 lipca 2020 przez pablop76 VIP (123,640 p.)
edycja 21 lipca 2020 przez pablop76

Podobne pytania

+1 głos
2 odpowiedzi 1,532 wizyt
pytanie zadane 16 marca 2021 w HTML i CSS przez essakwadratowa Początkujący (360 p.)
0 głosów
2 odpowiedzi 4,293 wizyt
+3 głosów
1 odpowiedź 715 wizyt
pytanie zadane 12 grudnia 2015 w Nasze projekty przez Tricker Bywalec (2,630 p.)

93,733 zapytań

142,669 odpowiedzi

323,287 komentarzy

63,294 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...