如何操作 - 範圍滑塊
學習如何使用 CSS 和 JavaScript 建立自定義範圍滑塊。
預設值
方形
圓形
圖片
值:建立範圍滑塊
步驟 1) 新增 HTML
示例
<<div class="slidecontainer">
<<input type="range" min="1" max="100" value="50" class="slider" id="myRange">
</div>
步驟 2) 新增 CSS
示例
.slidecontainer {
width: 100%; /* 外部容器的寬度 */
}
/* 滑塊本身 */
.slider {
-webkit-appearance: none; /* 覆蓋預設 CSS 樣式 */
appearance: none;
width: 100%; /* 全寬度 */
height: 25px; /* 指定高度 */
background: #d3d3d3; /* 灰色背景 */
outline: none; /* 移除輪廓 */
opacity: 0.7; /* 設定透明度(用於滑鼠懸停效果) */
-webkit-transition: .2s; /* 滑鼠懸停時 0.2 秒過渡 */
transition: opacity .2s;
}
/* 滑鼠懸停效果 */
.slider:hover {
opacity: 1; /* 滑鼠懸停時完全顯示 */
}
/* 滑塊手柄(使用 -webkit- (Chrome, Opera, Safari, Edge) 和 -moz- (Firefox) 覆蓋預設外觀)*/
.slider::-webkit-slider-thumb {
-webkit-appearance: none; /* 覆蓋預設外觀 */
appearance: none;
width: 25px; /* 設定特定的滑塊手柄寬度 */
height: 25px; /* 滑塊手柄高度 */
background: #04AA6D; /* 綠色背景 */
cursor: pointer; /* 滑鼠懸停時顯示指標 */
}
.slider::-moz-range-thumb {
width: 25px; /* 設定特定的滑塊手柄寬度 */
height: 25px; /* 滑塊手柄高度 */
background: #04AA6D; /* 綠色背景 */
cursor: pointer; /* 滑鼠懸停時顯示指標 */
}
自己動手試一試 »
步驟 3) 新增 JavaScript
建立一個動態範圍滑塊以顯示當前值,使用 JavaScript
示例
var slider = document.getElementById("myRange");
var output = document.getElementById("demo");
output.innerHTML = slider.value; // 顯示預設滑塊值
// 更新當前的滑塊值(每次拖動滑塊手柄時)
slider.oninput = function() {
output.innerHTML = this.value;
}
自己動手試一試 »
圓形滑塊
要建立圓形滑塊手柄,請使用 border-radius
屬性。提示:如果希望滑塊和滑塊手柄的高度不相等(此處為 15px 對比 25px),請將滑塊的高度設定為與滑塊手柄不同的值。
示例
.slider {
-webkit-appearance: none;
width: 100%;
height: 15px;
border-radius: 5px;
background: #d3d3d3;
outline: none;
opacity: 0.7;
-webkit-transition: .2s;
transition: opacity .2s;
}
.slider::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 25px;
height: 25px;
border-radius: 50%;
background: #04AA6D;
cursor: pointer;
}
.slider::-moz-range-thumb {
width: 25px;
height: 25px;
border-radius: 50%;
background: #04AA6D;
cursor: pointer;
}
自己動手試一試 »
滑塊圖示/影像
要建立滑塊手柄圖示/影像,請使用 background
屬性並插入圖片 URL。
示例
.slider::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 23px;
height: 24px;
border: 0;
background: url('contrasticon.png');
cursor: pointer;
}
.slider::-moz-range-thumb {
width: 23px;
height: 25px;
border: 0;
background: url('contrasticon.png');
cursor: pointer;
}
自己動手試一試 »