Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 禁用特定幻灯片上的按钮_Javascript_Css_Carousel_Slide - Fatal编程技术网

Javascript 禁用特定幻灯片上的按钮

Javascript 禁用特定幻灯片上的按钮,javascript,css,carousel,slide,Javascript,Css,Carousel,Slide,我把它做成了一个带有2个图像的滑块,第一个是Gotrade,第二个是Midas。我希望当im在第一张幻灯片上时不显示左箭头,当im在第二张幻灯片上时不显示右箭头 if (firstSlide.classList.contains('active-slide')) { buttonLeft.style.display = 'none'; buttonRight.style.display = 'flex'; } else if (secondSlide.classList.contains(

我把它做成了一个带有2个图像的滑块,第一个是Gotrade,第二个是Midas。我希望当im在第一张幻灯片上时不显示左箭头,当im在第二张幻灯片上时不显示右箭头

 if (firstSlide.classList.contains('active-slide')) {
 buttonLeft.style.display = 'none';
 buttonRight.style.display = 'flex';
} else if (secondSlide.classList.contains('second-slide')) {
 buttonLeft.style.display = 'flex';
 buttonRight.style.display = 'none';
}
我试过了,但没用。 这是供参考的图像


代码笔:

您的代码有几处错误。例如,您正在检查名为
active slide
的类名,但代码中没有设置具有该名称的类。如果您从其他源复制和粘贴代码而不花时间去理解它,那么调试可能是不可能的

与其检查不存在的类是否存在,不如检查您在哪张幻灯片上,并检查您是在第一张还是最后一张幻灯片上。您还需要在幻灯片转换后运行此代码,而不是像代码笔中显示的那样在程序结束时运行一次。下面是一个Javascript检查
slideIndex
而不是类的示例:

var slideIndex = 1;

let firstSlide = document.querySelector('.first-slide');
let secondSlide = document.querySelector('.second-slide');
let buttonLeft = document.querySelector('.prev');
let buttonRight = document.querySelector('.next');

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("mySlides");
    if (n > slides.length) { slideIndex = 1 }
    if (n < 1) { slideIndex = slides.length }
    for (i = 0; i < slides.length; i++) {
        slides[i].style.display = "none";
    }
    slides[slideIndex - 1].style.display = "flex";

    if (slideIndex === 1) {
        buttonLeft.style.display = 'none';
        buttonRight.style.display = 'flex';
    } else if (slideIndex === slides.length) {
        buttonRight.style.display = 'none';
        buttonLeft.style.display = 'flex';
    }
}
var slideIndex=1;
让firstSlide=document.querySelector(“.first slide”);
设secondSlide=document.querySelector(“.second slide”);
let buttonLeft=document.querySelector('.prev');
let buttonRight=document.querySelector('.next');
放映幻灯片(幻灯片索引);
//下一个/上一个控件
函数加滑块(n){
放映幻灯片(幻灯片索引+=n);
}
//缩略图图像控件
功能当前幻灯片(n){
放映幻灯片(幻灯片索引=n);
}
功能演示幻灯片(n){
var i;
var slides=document.getElementsByClassName(“mySlides”);
如果(n>slides.length){slideIndex=1}
如果(n<1){slideIndex=slides.length}
对于(i=0;i
这需要更多调试细节-什么是
按钮左
按钮右
?你确认他们指向正确的元素了吗?第一张幻灯片和第二张幻灯片也一样-您是否验证了这些类是正确的?此代码何时运行?您是否验证过它在幻灯片转换后运行?您可能可以使用
console.log
在代码运行时检查代码,而不是询问stackoverflow我是否找到了我没有在stackoverflow上发布的解决方案。您有一些图像可供参考,其中您可以看到按钮左和按钮右箭头方向如何?您可以提供您的html吗?@AndreiNistor图像不会告诉我们有关标记或代码运行的任何信息。这里没有足够的信息来回答你的问题。请阅读。Andy Ray你知道我不能复制htmlI的很多代码。我用“active-slide”类测试了它。如果你遇到问题的代码与你在问题中发布的代码不同,那么回答问题就很困难。你的问题越具体,步骤越重复,你得到的答案就越好、越快。