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

Pytania dotyczące skryptu slidera

Object Storage Arubacloud
0 głosów
151 wizyt
pytanie zadane 1 listopada 2016 w JavaScript przez dewe Gaduła (4,300 p.)

Witam ponownie, ostatnio często tutaj piszę tematy i nadużywam waszej dobroci, ale mam nadzieję, że jeszcze mnie nie macie dosyć :P

Otóż mam taki kod: 

(function() {

	var numer = 0;
	var timer;
	var slide = document.getElementsByClassName("slide");
	
	function zmienslajd()
	{
		numer++;
		if (numer>4) numer=1;
		slide[0].src = "images/" + numer + ".png";
		timer = setTimeout(zmienslajd, 1000);
	}
	
	document.getElementsByClassName("left").addEventListener("click", odejmij);
	
	function odejmij()
	{
		numer--;
	}
	
	window.zmienslajd = zmienslajd;
	
})();
<!DOCTYPE html>
<html lang="pl">
<head>
<script src="js/jquery-3.1.1.min.js"></script>
<link rel="stylesheet" href="css/animate.css"/>
<link rel="stylesheet" href="css/main.css"/>
<script src="js/slider.js"></script>
</head>
<body>
<div class="slider">
	<img class="slide wow fadeIn animated" src="images/1.png"/>
	<div class="left">
	
	</div>
	<div class="right">
	
	</div>
</div>
<script>
$( document ).ready(function() {
    zmienslajd();
});
</script>
</body>
</html>

I mam dwa pytania:

- Co zrobić aby animacja "wow fadeIn animated" aktywowała się z każdą zmianą slidu, a nie tylko przy pierwszym?,

- Gdzie umieścić "document.getElementsByClassName("left").addEventListener("click", odejmij);" aby dodać zdarzenie do klasy? W tym układzie jak jest teraz slider wcale się nie wykonuje.

komentarz 1 listopada 2016 przez xmentor Nałogowiec (49,520 p.)
window.zmienslajd = zmienslajd;

i

<script>
$( document ).ready(function() {
    zmienslajd();
});
</script>

Dziwnie żeś to zrobił.

Zamiast document.getElementsByClassName

użyj document.querySelector.

komentarz 1 listopada 2016 przez dewe Gaduła (4,300 p.)
(function() {

	var numer = 0;
	var timer;
	var slide = document.querySelector(".slide");
	
	function zmienslajd()
	{
		numer++;
		if (numer>4) numer=1;
		slide[0].src = "images/" + numer + ".png";
		timer = setTimeout(zmienslajd, 1000);
	}
	
	document.querySelector(".left").addEventListener("click", odejmij);
	
	function odejmij()
	{
		numer--;
	}
	
	window.zmienslajd = zmienslajd;
	
})();

Nadal nie działa slider.

komentarz 1 listopada 2016 przez xmentor Nałogowiec (49,520 p.)
<script src="js/slider.js"></script>

przenieś nad

<script>
$( document ).ready(function() {
    zmienslajd();
});
</script>

 

komentarz 1 listopada 2016 przez dewe Gaduła (4,300 p.)
<!DOCTYPE html>
<html lang="pl">
<head>
<script src="js/jquery-3.1.1.min.js"></script>
<link rel="stylesheet" href="css/animate.css"/>
<link rel="stylesheet" href="css/main.css"/>
</head>
<body>
<div class="slider">
	<img class="slide wow fadeIn animated" src="images/1.png"/>
	<div class="left">
	
	</div>
	<div class="right">
	
	</div>
</div>
<script src="js/slider.js"></script>
<script>
$( document ).ready(function() {
    zmienslajd();
});
</script>
</body>
</html>

 

komentarz 1 listopada 2016 przez dewe Gaduła (4,300 p.)
Nie rozumiem kompletnie tych błędów z konsoli, nadal nie działa niestety.
komentarz 1 listopada 2016 przez xmentor Nałogowiec (49,520 p.)
Wrzuć tutaj ich treść
komentarz 1 listopada 2016 przez dewe Gaduła (4,300 p.)
edycja 1 listopada 2016 przez dewe

http://scr.hu/0qceu/vzqk9

 

Niby rozumiem o co chodzi i gdzie szukać błędu, ale nie rozumiem dlaczego biblioteki mi się coś czepia po przeniesieniu

<script src="js/slider.js"></script>

nad

<script>
$( document ).ready(function() {
    zmienslajd();
});
</script>

Aktualny kod:

<!DOCTYPE html>
<html lang="pl">
<head>
<script src="js/jquery-3.1.1.min.js"></script>
<link rel="stylesheet" href="css/animate.css"/>
<link rel="stylesheet" href="css/main.css"/>
</head>
<body>
<div class="slider">
	<img class="slide wow fadeIn animated" src="images/1.png"/>
	<div class="left">
	
	</div>
	<div class="right">
	
	</div>
</div>
<script src="js/slider.js"></script>
<script>
$( document ).ready(function() {
    zmienslajd();
});
</script>
</body>
</html>



(function() {

	var numer = 0;
	var timer;
	var slide = document.querySelector(".slide");
	
	function zmienslajd()
	{
		numer++;
		if (numer>4) numer=1;
		slide[0].src = "images/" + numer + ".png";
		timer = setTimeout(zmienslajd, 1000);
	}
	
	document.querySelector(".kili11").addEventListener("click", odejmij);
	
	function odejmij()
	{
		numer--;
	}
	
	window.zmienslajd = zmienslajd;
	
})();

 

1
komentarz 1 listopada 2016 przez xmentor Nałogowiec (49,520 p.)
edycja 1 listopada 2016 przez xmentor
document.querySelector(".kili11")

Masz w ogole element na stronie, który ma klase kili11? Bo w twoim HTMLu nie widze.

$( document ).ready(function() {
 [...]
});

To jest zbędne, jeżeli skrypt jest przed </body>

komentarz 1 listopada 2016 przez dewe Gaduła (4,300 p.)

Eh, to "kili11" bylo testowo, ale nawet jak zmienie prawidlowo na "left" to nie dziala.

 

A co do 

$( document ).ready(function() {
 [...]
});

to bez tego skrypt się nie wykonuje wcale

komentarz 1 listopada 2016 przez xmentor Nałogowiec (49,520 p.)

Eh, to "kili11" bylo testowo, ale nawet jak zmienie prawidlowo na "left" to nie dziala.

Ale błąd wyskakuje ten sam?

to bez tego skrypt się nie wykonuje wcale

Tylko, że ten kod, który jest pomiędzy tym $(document)... wykonuje się po załadowaniu DOMu, a skoro skrypt jest przy </body> to wykona się dopiero jak wczyta się cały DOM - więc to jest zbędne.

komentarz 1 listopada 2016 przez dewe Gaduła (4,300 p.)

Błąd jest teraz taki: http://scr.hu/0qceu/8ldp9

 

W takim razie jak wywołać funkcję zmienslajd()? Bez tego 

<script>
$( document ).ready(function() {
    zmienslajd();
});
</script>

Nie wywołuje się wcale.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
3 odpowiedzi 213 wizyt
pytanie zadane 4 listopada 2019 w JavaScript przez BlvckFox Gaduła (4,240 p.)
0 głosów
1 odpowiedź 315 wizyt
pytanie zadane 7 stycznia 2018 w Egzaminy zawodowe przez adrian28 Użytkownik (540 p.)
0 głosów
1 odpowiedź 868 wizyt
pytanie zadane 7 stycznia 2018 w Egzaminy zawodowe przez adrian28 Użytkownik (540 p.)

92,626 zapytań

141,486 odpowiedzi

319,844 komentarzy

62,009 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!

...