Saya menemukan tutorial ini untuk membuat penggeser perbandingan gambar, yang berfungsi sempurna di Chrome. Namun, ketika saya memuatnya di Firefox, slider tidak bereaksi sama sekali.

Berikut contoh:

  const slider = document.querySelector(".slider input");
  const img = document.querySelector(".images .img-2");
  const dragLine = document.querySelector(".slider .drag-line");
  slider.oninput = ()=>{
    let sliderVal = slider.value;
    dragLine.style.left = sliderVal + "%";
    img.style.width = sliderVal + "%";
  }
    *{
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
html,body{
  /* display: grid; */
  height: 100%;
  place-items: center;
  background: #efefef;
}
.wrapper{
  position: relative;
  height: 600px;
  width: 743px;
  overflow: hidden;
  background: #fff;
  border: 7px solid #fff;
  box-shadow: 0px 0px 15px rgba(0,0,0,0.15);
  margin: auto;
}
.wrapper .images{
  height: 100%;
  width: 100%;
  display: flex;
}
.wrapper .images .img-1{
  height: 100%;
  width: 100%;
  background: url("https://res.cloudinary.com/joanmm/image/upload/v1620035713/CLD/Trommel_digital.png") no-repeat;
  /* background: url("images/car.jpg") no-repeat; */
}
.wrapper .images .img-2{
  position: absolute;
  height: 100%;
  width: 50%;
  /* filter: blur(5px); */
  background: url("https://res.cloudinary.com/joanmm/image/upload/v1620035603/CLD/Trommel_original.jpg") no-repeat;
  /* background: url("images/car.png") no-repeat; */
}
.wrapper .slider{
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 99;
}
.wrapper .slider input{
  width: 100%;
  outline: none;
  background: none;
  -webkit-appearance: none;
}
.slider input::-webkit-slider-thumb{
  height: 586px;
  width: 3px;
  background: none;
  -webkit-appearance: none;
  cursor: col-resize;
}
.slider .drag-line{
  width: 3px;
  height: 586px;
  position: absolute;
  left: 49.85%;
  pointer-events: none;
}
.slider .drag-line::before,
.slider .drag-line::after{
  position: absolute;
  content: "";
  width: 100%;
  height: 273px;
  background: #fff;
}
.slider .drag-line::before{
  top: 0;
}
.slider .drag-line::after{
  bottom: 0;
}
.slider .drag-line span{
  height: 42px;
  width: 42px;
  border: 3px solid #fff;
  position: absolute;
  top: 50%;
  left: 50%;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}
.slider .drag-line span::before,
.slider .drag-line span::after{
  position: absolute;
  content: "";
  top: 50%;
  border: 10px solid transparent;
  border-bottom-width: 0px;
  border-right-width: 0px;
  transform: translate(-50%, -50%) rotate(45deg);
}
.slider .drag-line span::before{
  left: 40%;
  border-left-color: #fff;
}
.slider .drag-line span::after{
  left: 60%;
  border-top-color: #fff;
}
<div class="wrapper">
  <div class="images">
    <div class="img-1"></div>
    <div class="img-2"></div>
  </div>
  <div class="slider">
    <div class="drag-line">
      <span></span>
    </div>
    <input type="range" min="0" max="100" value="50">
  </div>
</div>

Saya tidak berhasil mengidentifikasi pemeriksaan kesalahan yang relevan dengan alat inspektur.

Adakah ide tentang apa yang mungkin menjadi masalah?

0
J0ANMM 11 Mei 2021, 21:04

1 menjawab

Jawaban Terbaik

Itu karena <input type="range"> adalah tidak didukung oleh Firefox. Anda mungkin lebih suka menggunakan solusi berdasarkan Seret dan lepas API

1
Guerric P 11 Mei 2021, 19:14