【问题标题】:How to creating multiple image sliders/gallery with range sliders如何使用范围滑块创建多个图像滑块/图库
【发布时间】:2020-07-21 00:04:17
【问题描述】:

我正在学习 CSS、PHP 和 JavaScript。我想使用 HTML 范围滑块创建一个图像/画廊滑块。到目前为止,我已经创建了这个设计。我只想要一个图像和范围滑块工作。我应该使用 JavaScript 使范围滑块工作,但它不工作。我已经搜索了数小时的 youtube 视频,但没有成功。请我需要一些帮助,因为我还在学习。下面是我的 HTML 和 JavaScript 代码。

        <div class="container">/*my container*/
                 <div class="slides">/*division class for picture slides*/
                    <img src="img1.png"> /*pictures*/
                    <img src="img2.png">
                    <img src="img3.png">
                    <img src="img4.png">
                    <img src="img5.png">
                    <img src="img6.png">
                    <img src="img7.png">
                    <img src="img8.png">
                    <img src="img9.png">
                    <img src="img10.png">
                    <img src="img11.png">
                    </div>
                </div>
   
        
        <div class ="slide-container"> /*range slider container*/
             <input type="range" min="1" max="100" value="1" class="slider" id="myRange"/>
        </div>
  
/*Java Script Code*/
<script>
   var slider = document.getElementById("myRange");
   var output = document.getElementById("slider");
   var slideIndex = 1;
   showSlides(slideIndex);

        function plusSlides(n) {
        showSlides(slideIndex += n);
        } 
        function showSlides(n) {
        var i;
        var slides = document.getElementsByClassName("slides");
        var dots = document.getElementsByClassName("slider");
        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";
        }
 </script>

【问题讨论】:

  • 什么不起作用? animate.js 是做什么的?
  • Animate.js 用于 JavaScript 中的动画。别担心。我的 JavaScript 代码不工作。我已经编辑了我的问题
  • 嗨重生!要增加获得答案的机会,请使用“”工具编辑问题以包含 SNIPPET。这使人们更容易复制问题。目前,您有一些奇怪的事情,例如在 HTML 中带有“//”的注释文本(其中不是注释符号)以及对不存在的函数“showSlides”和不存在的变量的引用更严重的问题“滑块”

标签: javascript php html css


【解决方案1】:

这应该适合你:

Javascript:

function slider(val){
    var doc = document.getElementById(val);
    var img = document.getElementsByTagName("img");
    if(doc != undefined){
      for(var i = 0; i < img.length; i++){
        img[i].style.display = "none";
      }
      doc.style.display = "block";
    }
 }

CSS:

img{display: none;}
img:first-of-type{display: block;}

HTML:

<div class="container">
    <div class="slides">
      <img src="img1.png" id="1">
      <img src="img2.png" id="2">
      <img src="img3.png" id="3">
      <img src="img4.png" id="4">
      <img src="img5.png" id="5">
      <img src="img6.png" id="6">
      <img src="img7.png" id="7">
      <img src="img8.png" id="8">
      <img src="img9.png" id="9">
      <img src="img10.png" id="10">
      <img src="img11.png" id="11">
    </div>
</div>
<div class ="slide-container">
  <input oninput="slider(this.value)" onchange="slider(this.value)" type="range" min="1" max="100" value="1" class="slider" id="myRange"/>
</div>

【讨论】:

  • 解决方案无效。只要我点击范围滑块,它就会让我的幻灯片消失。它不像典型的图像滑块那样滑过图片
  • 当您想要一个“真正的”滑块时,您需要查看“@Keyframes”。我的解决方案侧重于根据滑块的值更改图片。对于关键帧,请参阅stackoverflow.com/questions/17129473/css3-keyframe-cycle-sliderw3schools.com/cssref/css3_pr_animation-keyframes.asp 您对滑块的实际问题是什么?你想用滑块实现什么,到底什么不起作用?
  • 我想创建一个响应式幻灯片库,一旦您拖动范围滑块,它就会移动到下一张图片。我希望它像普通的幻灯片画廊一样工作,但不同之处在于,当用户想要查看画廊中的其他图片时,范围滑块将用于移动到下一个图像,而不是按钮或箭头。此项目不需要使用任何关键帧。我也不希望图片根据滑块的值而改变。当用户像幻灯片画廊一样来回拖动它时,我只想滑动显示下一张图片或上一张图片
  • 然后我会建议使用我的解决方案并将滑块的最小值和最大值调整为图像值。使用滑块解决方案,第一个图像应该在开头,最后一个图像在最后一个值上。当您有按钮或箭头时,没有定义的乞求或结束 - 还是您尝试使用滑块编写代码?
  • 是的,我正在尝试使用滑块而不是按钮和箭头进行编码。我已经使用了您的解决方案,但是一旦我单击滑块,它就会使图像消失。它不会像普通画廊滑块那样移动到下一张或上一张图片。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多