script.aculo.us の slider.js によるスライダーの値を%表示に

script.aculo.us ライブラリの slider.js による横方向のスライダーの値を%表示にする方法。スライダーのハンドルをドラッグし左右に動かすと、現在の値を割合(%)で動的に表示し、最終的には、移動後の位置の値を割合(%)で表示する。

実装例

値:0%

実装例の動作について

スライダーのハンドル(黒い部分)をドラッグし右に動かすと、スライダー下の「値:0%」の割合(パーセント)表示の数字が変化する。スライダーのハンドルを右端に動かすと「値:100%」になる。スライダーのハンドルを左端に動かすと「値:0%」になる。その間は、0%より大きく、100%より少ない、整数値になる。
スライダーのトラック部分(グレーの部分)をクリックすると、瞬時に、その位置へハンドルが動く。

ソースコード

JavaScript

<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="scriptaculous/slider.js"></script>
<script type="text/javascript">
<!--
window . onload = function () {
    new Control . Slider( 'slider-handle', 'slider-track', {
        onSlide: function( value ) { $( 'slider-value' ) . innerHTML = Math . round( value * 100 ) },
        onChange: function( value ) { $( 'slider-value' ) . innerHTML = Math . round( value * 100 ) }
    } );
}
// -->
</script>

CSS

<style type="text/css">
<!--
#slider-track {
    background-color: gainsboro;
    width: 100px;
    height: 20px;
    border-radius: 10px;
    border: 1px gray solid;
}
#slider-track:hover {
    background-color: lightgray;
}
#slider-handle {
    background-color:#333333;
    width: 20px;
    height: 20px;
    border-radius: 10px;
    cursor: pointer;
}
#slider-handle:hover {
    background-color: black;
}
-->
</style>

HTML

<div id="slider-track">
<div id="slider-handle"></div>
</div>
<div>値:<span id="slider-value">0</span>%</div>

要点解説

JavaScript

<script type="text/javascript" src="prototype.js"></script> // prototype.js を読み込む
<script type="text/javascript" src="scriptaculous/slider.js"></script> // script.aculo.us ライブラリの slider.js を読み込む
<script type="text/javascript">
<!--
window . onload = function () {
    new Control . Slider( 'slider-handle', 'slider-track', {
        onSlide: function( value ) { $( 'slider-value' ) . innerHTML = Math . round( value * 100 ) }, // スライダーのハンドルをスライドさせているときの値に100を掛け、小数点以下を四捨五入した整数値を、id が slider-value の要素に表示
        onChange: function( value ) { $( 'slider-value' ) . innerHTML = Math . round( value * 100 ) } // スライダーのハンドルの移動後の位置の値に100を掛け、小数点以下を四捨五入した整数値を、id が slider-value の要素に表示
    } );
}
// -->
</script>

スライダーの値に100を掛け、小数点以下を四捨五入した整数値を、id が slider-value の要素に表示している。

スポンサード リンク

カテゴリー: GUI, JavaScript, prototype.js, script.aculo.us, slider パーマリンク