HTML代碼如下:
<input type="range" min="0" max="100" value="50" />
在這個代碼中,我們簡單的使用了 input 標簽,type 屬性為 range,這表示它是一個滑動條。在滑動條的基礎上,我們還設置了最小值 min 屬性為 0 ,最大值 max 屬性為 100,初值 value 屬性為 50,表示滑動條初始化時需要顯示的值。
但是,這個滑動條顯然還是很簡單的,接下來我們來進一步美化和優化這個滑動條。
HTML 代碼如下:
<div id="slider"> <span id="value" class="value">50</span> <input type="range" id="range" min="0" max="100" value="50" /> </div>
在這份代碼中,我們首先給滑動條增加了一個包裹層,這個包裹層的 id 為 slider。在 slider 中,我們再次使用了 input 標簽,type 屬性還是為 range,同時為 input 標簽設置了 id 為 range 以及 min、max、value 屬性。在次方代碼中,我們把當前滑塊的值也顯示在頁面中,這也是很常用的美化效果,該文本元素 id 為 value。
CSS 代碼如下:
#slider { position: relative; width: 500px; height: 50px; } .value { position: absolute; top: -30px; left: 0; width: 50px; height: 30px; line-height: 30px; text-align: center; font-size: 14px; background: #14aaff; color: #fff; border-radius: 5px; transition: all .2s ease-in-out; } #range { position: absolute; top: 0; left: 0; width: 100%; height: 100%; margin: 0; appearance: none; background: #ddd; border-radius: 10px; outline: none; -webkit-transition: .2s; transition: opacity .2s; } #range::-webkit-slider-thumb { -webkit-appearance: none; width: 25px; height: 25px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .2); cursor: pointer; transition: all .2s ease-in-out; } #range::-moz-range-thumb { width: 25px; height: 25px; border: none; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .2); cursor: pointer; transition: all .2s ease-in-out; }
在 CSS 代碼中,我們首先為包裹層添加了 position:relative, width, height 等屬性。接著為文本元素 value 添加了 position:absolute, top, left, width, height, line-height, text-align, background, color, box-shadow, transition 等屬性,這些屬性實現的效果便是將當前滑塊位置顯示在頁面的上方。細心的讀者可能已經發現了,這里的 value 寬度僅有 50px,為什么能夠容納我們精度為整數百分數的值呢?其實是因為我們后面還會通過 JavaScript 動態修改 value 的值。
再看 input 標簽,我們為它添加了 id,上下的樣式分別使用 appearance 和內置選擇器分別設置,其效果便是讓滑塊更加美觀和鮮活。同時,我們還為滑塊設置了 box-shadow, cursor, transition 等屬性,讓滑塊效果更加直觀。
JavaScript 代碼如下:
var range = document.getElementById('range'); var value = document.getElementById('value'); range.addEventListener('input', function () { value.innerText = range.value; });
在 JavaScript 中,我們首先使用了 document.getElementById 獲取滑塊和文本元素的 DOM 節點。接著,我們為滑塊添加了 input 事件監聽,當滑塊的值發生變化時,我們修改了文本元素 value 的 innerText 屬性,以此實現了當前滑塊位置在文本元素 value 中的顯示。
以上便是制作一個滑動條的完整過程,代碼簡單、效果美觀,是一項常使用且技巧十分豐富的 JavaScript 技能。期待各位開發者們能夠運用 JavaScript 的高超技能,創造出更加豐富的頁面效果,為 Web 頁面帶來更加豐富、美妙的用戶體驗。