【问题标题】:slider javascript Object滑块 javascript 对象
【发布时间】:2020-04-28 02:45:19
【问题描述】:

我想使用 JavaScript 创建一个滑块,自动滑动(超时 5000),并使用上一个和下一个按钮以及键盘手动滑动。事实上,我正在 YouTube 上寻找教程,我发现三个代码示例可以正常工作,但当然不能一起使用。我的导师说我应该使用对象(类),我将在其中插入这 3 个图像。

我知道如何使用构造函数等创建一个类。但我不明白它是如何处理图像的。我应该使用哪些参数?我可以只为选项(自动、手动、键盘)创建一个功能吗?

我不想使用 jQuery。

下面是我必须在类中插入的三个代码示例:

let tabImages = [];
let time = 5000;

// Image list
tabImages = ['images/velovimage.jpg', 'images/velov2.jpg', 'images/pietonvelo.jpg'];

// change Image

function changeImg(){
    document.slide.src = tabImages[i];

    if(i < tabImages.length - 1){
        i++;
    } else {
        i = 0;
    }

    setTimeout("changeImg()", time)
}

window.onload = changeImg;

/*

const img_con = document.getElementById('img-con');
const next = document.getElementById('next');
const prev = document.getElementById('prev');

const images = ['velovimage.jpg', 'velov2.jpg', 'pietonvelo.jpg']

let i = images.length;

// function for next slide

next.onclick = ()=> {
    i = (i<images.length) ?(i= i+1):(i=1);
    img_con.innerHTML = "<img class='img' src=images/"+images[i-1] +">";
}

// function for prev slide
prev.onclick = () => {
    i = (i<images.length+1 && i>1) ?(i = i-1):(i=images.length);
    img_con.innerHTML = "<img class='img' src=images/"+images[i-1] +">";
}

// keyboard

var slideIndex = 1;

showSlides(slideIndex);

function plusSlides(n) {
    showSlides(slideIndex += n);
}
function currentSlide(n) {
    showSlides(slideIndex = n);
}

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;
    }
}
*/

【问题讨论】:

    标签: javascript image object slider


    【解决方案1】:

    试试看这个例子,这是一个带有箭头按钮的图像轮播:https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_slideshow_gallery 但添加以下代码以添加箭头键支持:

    <script type="text/javascript">
    jQuery(function($){
        $(document).keydown(function(e){
            switch(e.keyCode){
                case 37: {//left arrow
                    $('.prev').trigger('click');
                    break;
                }
                case 39: {//right arrow
                    $('.next').trigger('click');
                    break;
                }
            }
            if(Math.abs(e.keyCode - 38) === 1){
                e.preventDefault();
            }
        });
    });
    </script>
    

    告诉我这是否有效

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      • 2018-12-17
      • 1970-01-01
      • 2017-06-09
      • 2013-10-04
      相关资源
      最近更新 更多