首先,我知道在回答不能解决我的问题之前就已经问过这个问题了,所以我想再问一遍:我使用了“ W3school”的幻灯片代码,该代码提供了很好的动画Jquery幻灯片。不幸的是,我的页面上需要多个,第二个页面使第一个页面无法正常工作。甚至在这里找到此解决方案之前,我都尝试过更改不同幻灯片对象的CSS和HTML名称,从而成功地解决了一部分问题(第二个未显示),但是如前所述,第一个问题停止了工作。幻灯片在这里,但是单击箭头不会执行任何操作。我稍微了解问题所在,但无法解决。这是我修改第二个代码的方式:
var slideIndex = 7; showSlides(slideIndex); function plusSlides(n) { showSlides(slideIndex += n); } function currentSlide(n) { showSlides(slideIndex = n); } function showSlides(n) { var i; var slides = document.getElementsByClassName("mySlides2"); var dots = document.getElementsByClassName("dot2"); 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(" active2", ""); } slides[slideIndex-1].style.display = "block"; dots[slideIndex-1].className += " active2"; }
如您所见,我只是为Jquery和CSS中的每种类型的对象添加了“2”。我想我必须给乘以不同的命令起不同的名字,但是怎么做呢?
编辑:这是Jsfiddle中的一个例子,但我不明白为什么第一个连幻灯片都没有,而第二个也不起作用:/它在我的计算机上可以!我忘了在电脑上说,单击第一个幻灯片上的箭头会更改第二个幻灯片上的图片!我用在网上找到的随机图片替换了图片。
我在这里创建了一个解决方案:
var sliderObjects = []; createSliderObjects(); function plusDivs(obj, n) { var parentDiv = $(obj).parent(); var matchedDiv; $.each(sliderObjects, function(i, item) { if ($(parentDiv[0]).attr('id') == $(item).attr('id')) { matchedDiv = item; return false; } }); matchedDiv.slideIndex=matchedDiv.slideIndex+n; showDivs(matchedDiv, matchedDiv.slideIndex); } function createSliderObjects() { var sliderDivs = $('.slider'); $.each(sliderDivs, function(i, item) { var obj = {}; obj.id = $(item).attr('id'); obj.divContent = item; obj.slideIndex = 1; obj.slideContents = $(item).find('.mySlides'); showDivs(obj, 1); sliderObjects.push(obj); }); } function showDivs(divObject, n) { debugger; var i; if (n > divObject.slideContents.length) { divObject.slideIndex = 1 } if (n < 1) { divObject.slideIndex = divObject.slideContents.length } for (i = 0; i < divObject.slideContents.length; i++) { divObject.slideContents[i].style.display = "none"; } divObject.slideContents[divObject.slideIndex - 1].style.display = "block"; } <link href="http://www.w3schools.com/lib/w3.css" rel="stylesheet"/> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <h2 class="w3-center">Manual Slideshow</h2> <div class="w3-content w3-display-container slider" id="div1"> <img class="mySlides" src="https://i.imgur.com/eLarayS.jpg" style="width:100%"> <img class="mySlides" src="https://i.imgur.com/xpOiMWh.jpg" style="width:100%"> <img class="mySlides" src="https://i.imgur.com/lgcC8Y5.jpg" style="width:100%"> <img class="mySlides" src="http://i.imgur.com/ufmiVTQ.jpg" style="width:100%"> <a class="w3-btn-floating w3-display-left" onclick="plusDivs(this,-1)">❮</a> <a class="w3-btn-floating w3-display-right" onclick="plusDivs(this,1)">❯</a> </div> <div class="w3-content w3-display-container slider" id="div2"> <img class="mySlides" src="https://i.imgur.com/eLarayS.jpg" style="width:100%"> <img class="mySlides" src="https://i.imgur.com/xpOiMWh.jpg" style="width:100%"> <img class="mySlides" src="https://i.imgur.com/lgcC8Y5.jpg" style="width:100%"> <img class="mySlides" src="http://i.imgur.com/ufmiVTQ.jpg" style="width:100%"> <a class="w3-btn-floating w3-display-left" onclick="plusDivs(this, -1)">❮</a> <a class="w3-btn-floating w3-display-right" onclick="plusDivs(this, 1)">❯</a> </div>
您现在可以为带有“ slider”类和唯一ID的滑块添加尽可能多的div。