Reputation: 71
So basically I want to move my slider index with my keyboard.
The current slideshow can be navigated with the built in buttons, but i want to be able to use my keyboard to move forward or back. I have linked my keyboard with switch cast (37
for left
) (39
for right
), but nothing happens.
Here is all my JS
var slideIndex = 1;
showSlides(slideIndex);
function plusSlides(n) {
showSlides(slideIndex += n);
}
function currentSlide(n) {
showSlides(slideIndex = n);
}
function showSlides(n) {
var i;
var slides = document.getElementsByClassName("mySlides");
var dots = document.getElementsByClassName("dot");
if (n > slides.length) {
slideIndex = 1
}
if (n < 1) {
slideIndex = slides.length
}
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" active", "");
}
slides[slideIndex - 1].style.display = "block";
dots[slideIndex - 1].className += " active";
}
document.onkeydown = function(n) {
switch (e.keyCode) {
case 37:
//left
slideIndex--;
break;
case 39:
//right
slideIndex++;
break;
}
}
Upvotes: 1
Views: 1282
Reputation: 280
document.onkeydown
. E.g.:
document.onkeydown = function(e) {
switch (e.keyCode) {
case 37:
//left
e.preventDefault();
slideIndex--;
showSlides(slideIndex);
break;
case 39:
//right
e.preventDefault();
slideIndex++;
showSlides(slideIndex);
break;
}
}
Upvotes: 2