javascript - 如何在 slider 中的图像之间转换

标签 javascript css input range image-gallery

我有一个带有输入范围的简单图像 slider 。我想选择输入范围值并能够淡入和淡出图像。

问题是 - 我的设置必须保持这种状态。我需要在 li 中有 img 标签,并且需要在类名下有图像作为 css 背景 url。

如何根据 slider 的位置识别当前播放并过渡到下一个播放?

要求:如果用户转到 slider 上的范围 2,image2 应该可见。如果用户进入范围 4,则 image4 应该可见,依此类推。

我已经能够读取输入范围并找到具有该图像类别的图像。

如何删除前一张图片的“事件”状态并插入这张新图片?

请查找附件中的代码

let line = document.getElementById("line");

line.addEventListener("input", function(event){
  setNewImage(event.target.value);
});

function setNewImage(value){
  let currentImage = document.getElementsByClassName("playing");
  let newImageClassName = "image"+value;
}
.container {
  display: flex;
  justify-content: center;
  flex-direction: column;
  background-color: lavendar;
  width: 400px;
  height: 300px;
}

.image-container {
  width: 380px;
  height: 280px;
/*   background-color: pink; */
}

.scrollbar {
/*   padding: 0 5px 5px 0; */
}
.scrollbar input {
  width: 380px;
}

ul li {
  list-style: none;
}

.image {
  width: 380px;
  height: 260px;
  display: none;
}

.playing {
  display: block;
}
.image1 {
  background: url('http://placekitten.com/380/260') no-repeat;
}

.image2 {
  background: url('http://placekitten.com/378/260') no-repeat;
}

.image3 {
  background: url('http://placekitten.com/380/259') no-repeat;
}

.image4 {
  background: url('http://placekitten.com/379/260') no-repeat;
}

.image5 {
  background: url('http://placekitten.com/383/260') no-repeat;
}

.image6 {
  background: url('http://placekitten.com/380/261') no-repeat;
}
<div class="container">
  <div class="image-container">
    <ul>
      <li><img class="playing image image1" /></li>
      <li><img class="image image2" /></li>
      <li ><img class="image image3" /></li>
      <li><img class="image image4" /></img></li>
      <li><img class="image image5" /></li>
      <li><img class="image image6"/></li>
    </ul>
  </div>
  <div class="scrollbar">
    <input id="line" type="range" min=1 max =6 />
  </div>
</div>

我正在获取输入范围值。非常感谢来自这里的帮助!谢谢!

最佳答案

我能够解决它!

  

let line = document.getElementById("line");

line.addEventListener("input", function(event){
  setNewImage(event.target.value);
});

function setNewImage(value){
  // console.log(value);
  let currentImage = document.getElementsByClassName("playing");
  let removedImage = currentImage[0].classList.remove("playing");
  let imageToAdd = "image"+value;
  // console.log(imageToAdd);
  
  let getElToAdd = document.getElementsByClassName(imageToAdd);
  
  // console.log(getElToAdd);
  
  let newEl = getElToAdd[0];
  
 newEl.classList.add("playing");
}
.container {
  display: flex;
  justify-content: center;
  flex-direction: column;
  background-color: lavendar;
  width: 400px;
  height: 300px;
}

.image-container {
  width: 380px;
  height: 280px;
/*   background-color: pink; */
}

.scrollbar {
/*   padding: 0 5px 5px 0; */
}
.scrollbar input {
  width: 380px;
}

ul li {
  list-style: none;
}

.image {
  width: 380px;
  height: 260px;
  display: none;
}

.playing {
  display: block;
}
.image1 {
  background: url('http://placekitten.com/380/260') no-repeat;
}

.image2 {
  background: url('http://placekitten.com/378/260') no-repeat;
}

.image3 {
  background: url('http://placekitten.com/380/259') no-repeat;
}

.image4 {
  background: url('http://placekitten.com/379/260') no-repeat;
}

.image5 {
  background: url('http://placekitten.com/383/260') no-repeat;
}

.image6 {
  background: url('http://placekitten.com/380/261') no-repeat;
}
<div class="container">
  <div class="image-container">
    <ul>
      <li><img class="playing image image1" /></li>
      <li><img class="image image2" /></li>
      <li ><img class="image image3" /></li>
      <li><img class="image image4" /></img></li>
      <li><img class="image image5" /></li>
      <li><img class="image image6"/></li>
    </ul>
  </div>
  <div class="scrollbar">
    <input id="line" type="range" min=1 max =6 />
  </div>
</div>

关于javascript - 如何在 slider 中的图像之间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50066119/

相关文章:

javascript - 检查元素类名

javascript - 如何使用 CS 购物车中的产品选项创建过滤器

CSS - 下拉菜单(固定宽度)

javascript - 如何使用 jquery 将类添加到 bootstrap 表中的 td 标记

javascript - 未显示警报弹出窗口

javascript - 如何在 UID 下存储 Firebase 用户

html - 使用CSS旋转从左到右依次显示信息

c++ - 从文件中读取 uint32_t 值

java - 我需要找到用户输入的特定变量,但我不明白如何

html - 文本插入光标(插入符号)出现在移动浏览器中的其他元素上方