Tajuk Dibayangkan Semula: Cara Memohon Kesan Limpahan Hanya pada Box Shadow
P粉391677921
P粉391677921 2023-09-03 17:14:49
0
1
582
<p>Saya cuba membina bar peluncur julat input, tetapi saya menghadapi masalah. </p> <p> <pre class="brush:css;toolbar:false;">body { justify-content: pusat; align-item: tengah; ketinggian min: 100vj; latar belakang: #151515; } #rangeValue { kedudukan: relatif; paparan: blok; saiz fon: 6em; warna: #999; berat fon: 400; } .julat { latar belakang: kecerunan linear(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab) !penting; lebar: 400px; ketinggian: 5px; -webkit-penampilan: tiada; latar belakang: #111; garis besar: tiada; jejari sempadan: 15px; box-shadow: inset 0 0 5px rgba(0, 0, 0, 1); } .range::-webkit-slider-thumb { -webkit-penampilan: tiada; lebar: 15px; ketinggian: 15px; jejari sempadan: 50%; latar belakang: biru; kursor: penunjuk; bayang kotak: -507px 0 0 500px merah; }</pre> <pre class="brush:html;toolbar:false;"><div> <span id="rangeValue">0</span> <Input class="julat" type="julat" nama "" value="0" min="0" max="1000"></Input> </div></pre> </p> <p>Masalahnya ialah: Saya mahu kawasan merah besar ini kekal dalam peluncur input apabila dilukis. Satu-satunya penyelesaian ialah menggunakan <code>overflow: hidden</code> untuk <code>.range</code> Adakah terdapat cara untuk hanya menggunakan <code>overflow: hidden</code> untuk <code>box-shadow</code>? Atau sebarang petunjuk tentang cara lain untuk menjadikannya berfungsi? </p> <p>Hasil akhir sepatutnya seperti ini =></p> <p><img src="/uploads/20230822/169264211664e3ab441b49a.png" alt=" keputusan akhir " /></p> <p>Terima kasih. </p>
P粉391677921
P粉391677921

membalas semua(1)
P粉387108772

Saya tidak pasti sama ada ini membantu, tetapi inilah pemfaktoran semula yang saya lakukan. Mungkin anda boleh membuat beberapa pengubahsuaian untuk disesuaikan dengan tugas anda.

HTML

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="style.css">
  <title>Slider</title>
</head>
<body>
    <div>
    <span id="rangeValue">0</span>
    <Input type="range" name="" id="range" value="0" min="0" max="100"></Input>
</div>
</body>
  
  <script src=""></script>
</html>

CSS

body {
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background: #151515;
}
#rangeValue {
    position: relative;
    display: block;
    font-size: 6em;
    color: #999;
    font-weight: 400;
}

/* Input Thumb */
input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  height: 20px;
  width: 20px;
  border-radius: 50%;
  background: #ff4500;
  cursor: ew-resize;
  box-shadow: 0 0 2px 0 #555;
  transition: background .3s ease-in-out;
}

input[type="range"]::-moz-range-thumb {
  -webkit-appearance: none;
  height: 20px;
  width: 20px;
  border-radius: 50%;
  background: #ff4500;
  cursor: ew-resize;
  box-shadow: 0 0 2px 0 #555;
  transition: background .3s ease-in-out;
}

input[type="range"]::-ms-thumb {
  -webkit-appearance: none;
  height: 20px;
  width: 20px;
  border-radius: 50%;
  background: #ff4500;
  cursor: ew-resize;
  box-shadow: 0 0 2px 0 #555;
  transition: background .3s ease-in-out;
}


/* Input Track */
input[type=range]::-webkit-slider-runnable-track  {
  -webkit-appearance: none;
  box-shadow: none;
  border: none;
  background: transparent;
}

input[type=range]::-moz-range-track {
  -webkit-appearance: none;
  box-shadow: none;
  border: none;
  background: transparent;
}

JS

const rangeInputs = document.querySelectorAll('input[type="range"]')

function handleInputChange(e) {
  let target = e.target
  if (e.target.type !== 'range') {
    target = document.getElementById('range')
  }
  
  const min = target.min
  const max = target.max
  const val = target.value
  
  target.style.backgroundSize = (val - min) * 100 / (max - min) + '% 100%'
}

rangeInputs.forEach(input => {
  input.addEventListener('input', handleInputChange)
})

Anda boleh melaraskannya mengikut pilihan anda. Harap ini membantu.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan