javascript - 将键盘控件添加到 slider

标签 javascript html

我有一个用于滚动浏览产品图片的灯箱 slider ,我希望用户能够使用键盘上的箭头键滚动浏览图片,而不必单击箭头并使用 ESC键关闭灯箱。

灯箱 slider 代码:

  // T50 Lightbox
    // Open the Modal
    function openModal() {
      document.getElementById('T50Lightbox').style.display = "block";
    }

    // Close the Modal
    function closeModal() {
      document.getElementById('T50Lightbox').style.display = "none";
    }

    var slideIndex = 1;
    showSlides(slideIndex);

    // Next/previous controls
    function plusSlides(n) {
      showSlides(slideIndex += n);
    }

    // Thumbnail image controls
    function currentSlide(n) {
      showSlides(slideIndex = n);
    }

    function showSlides(n) {
      var i;
      var slides = document.getElementsByClassName("T50-Slides");
      var dots = document.getElementsByClassName("demo");
      var captionText = document.getElementById("caption");
      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";
      captionText.innerHTML = dots[slideIndex-1].alt;
    }

我有以下代码可以使用 ESC 键关闭菜单,如何将它与箭头键一起应用于灯箱?

    function closeMenu() {
        $(".menu-trigger").removeClass("open");
        $(".navigation").removeClass("nav-open");
        $(".col").removeClass("c-in");
      }

    $(document).keyup(function(e) {
      if (e.keyCode == 27) {
        closeMenu();
            }
      });

最佳答案

您可以像为 esc 键添加监听器一样为箭头键添加监听器。箭头键的键码是:-

left arrow  37
up arrow    38
right arrow 39
down arrow  40

您可以编写以下代码:-

$(document).keyup(function(e) {
   if (e.keycode === 27) {
     closemenu();
    }
    if(e.keycode === 37) {
      // code for showing next slide
        plusSlides(n)
      }
     // same for other keys
   }

关于javascript - 将键盘控件添加到 slider ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55259623/

相关文章:

javascript - 绝对定位问题

javascript - js中的函数按值或引用复制/传递

java - 使用 Extendedrenderkitservice 添加脚本

javascript - 根据 URL 重定向到不同的 Controller

javascript - 在 Opera 和 Chrome 中隐藏/显示 SWF 对象会重新启动 SWF

javascript - 在悬停另一个 div 时隐藏一个 div

javascript - 尝试使用 jQuery 创建一个 16x16 的 div 网格,但 div 保持重叠

javascript - JQuery展开页面上的所有div

javascript - 显示带有复选框的 jquery <div>

javascript - 在 overflow hidden 的父级中获取文本内容宽度