Diskuze: Nefunguje js slider
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
window.onload = sliderFunction();
Zavolá funkci hned v headu, když elementy next a prev neexistují.
Nahradit za toto
window.onload = sliderFunction;
a toto
var li = document.getElementsByClassName("li");
nahradit tímto
var li = document.getElementsByTagName("LI");
Jestě bych doplnit:
CSS:
.hide {
opacity: 0;
}
JS:
var nextSlide = function () {
li[count].className = "hide";
count++;
if (li[count])
{
li[count].className = "show";
}
else
{
count = 0;
li[count].className = "show";
}
};
var prevSlide = function () {
li[count].className = "hide";
count--;
if (li[count])
{
li[count].className = "show";
}
else
{
count = liCount - 1;
li[count].className = "show";
}
};
A nebo rovnou využít vlastností DOM elementů:
var sliderFunction = function () {
var slider = document.getElementById("slider");
var ul = document.getElementById("slideWrap");
var next = document.getElementById("next");
var prev = document.getElementById("prev");
var currentLi = document.getElementsByClassName("show")[0];
var nextSlide = function () {
currentLi.className = "hide";
if (currentLi.nextElementSibling)
{
currentLi = currentLi.nextElementSibling;
}
else
{
currentLi = ul.firstElementChild;
}
currentLi.className = "show";
};
var prevSlide = function () {
currentLi.className = "hide";
if (currentLi.previousElementSibling)
{
currentLi = currentLi.previousElementSibling;
}
else
{
currentLi = ul.lastElementChild;
}
currentLi.className = "show";
};
next.addEventListener("click", function () {
nextSlide();
});
prev.addEventListener("click", function () {
prevSlide();
});
};
Zobrazeno 4 zpráv z 4.