簡體   English   中英

更改值時防止滑塊跳動

[英]Prevent slider from jumping when value is changed

我有一個滑塊,可以實時更新其右側標簽上的值。 當數值從1位數變為2位數時,我該怎么做以防止其“跳”? 如何給標簽固定位置,以免更改布局:

 var range = document.getElementById('range'); range.addEventListener('input', rangeChange); function rangeChange() { label.innerHTML = this.value; } 
 <label id="label">0</label> <input id="range" type="range" value=0 min=0 max=100> 

要么添加width: 20px;display: inline-block;要么width: 20px;display: inline-block; 到標簽。

要么

在兩個元素周圍添加一個包裝,並為其display: flex; align-items: center; display: flex; align-items: center; 標簽的樣式和寬度。

 var range = document.getElementById('range'); range.addEventListener('input', rangeChange); function rangeChange() { label.innerHTML = this.value; } 
 <div style="display: flex; align-items: center;"> <label id="label" style="width: 20px;">0</label> <input id="range" type="range" value=0 min=0 max=100> </div> 

選項1:將標簽貼到滑塊的右側

 var range = document.getElementById('range'); range.addEventListener('input', rangeChange); function rangeChange() { label.innerHTML = this.value; } 
 <input id="range" type="range" value=0 min=0 max=100> <label id="label">0</label> 

選項2:零填充:

 var range = document.getElementById('range'); range.addEventListener('input', rangeChange); function rangeChange() { var val = +(this.value); if (10 > val) { val = '00' + val; } else if (100 > val) { val = '0' + val; } label.innerHTML = val; } 
 <label id="label">000</label> <input id="range" type="range" value=0 min=0 max=100> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM