Есть замечательный html-элемент:
<input type="range" min="0" max="100" value="100" id="volume" oninput="this.labels[0].textContent = this.value" onchange="this.oninput()" />
<label for="volume">100</label>
Однако он из HTML5 и не поддерживается старыми браузерами (плюс со стилизацией проблема). Если это проблема, то можно подключить например такую штуку:
http://refreshless.com/nouislider/ или jquery.ui