スライダーの値を設定する

 スライダーの値を設定するにはsetValue()を使います。setValue()の最初のパラメータがスライダーに設定する値になります。二番目のパラメータはアニメーションしながら移動させるかどうかのフラグです。trueであればアニメーションしない、falseであればアニメーションしながら指定した値のところまでスライダーのサムが移動します。
 例えば以下のように設定するとスライダーが表示された直後にスライダーのサムは50の値の位置に瞬時に移動します。

slider = YAHOO.widget.Slider.getHorizSlider("sliderbg", "sliderthumb", 0, 100);
slider.setValue(50,true);

実際のサンプルは以下のようになります。(実際のサンプルを実行する

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>yuiスライダーサンプル(初期値を設定する)</title>
<link rel="stylesheet" href="slider.css" type="text/css" media="all">
<script src="YAHOO.js" type="text/javascript"></script>
<script src="dom.js" type="text/javascript"></script>
<script src="dragdrop.js" type="text/javascript"></script>
<script src="event.js" type="text/javascript"></script>
<script src="slider.js" type="text/javascript"></script>
<script type="text/javascript"><!--
// スライダー初期化
var slider;
window.onload = function () {
slider = YAHOO.widget.Slider.getHorizSlider("sliderbg", "sliderthumb", 0, 100);
slider.setValue(50,true);
}
// --></script>
</head>
<body>
<h1>yuiスライダーサンプル(初期値を設定する)</h1>
<p>ドラッグしてスライダーを動かすことができます</p>
<div id="sliderbg">
<div id="sliderthumb"><img src="images/button.gif"></div>
</div>
</body>
</html>

 最初に値を設定するのではなく、後から指定した値にすることもできます。以下のサンプルはテキストフィールドに入力された値の位置にスライダーを移動させます。setValue()に渡すパラメーターは数値型でないと正しく動作しません。このため、整数値であればparseInt()、浮動小数値であればparseFloat()を使って入力された値を数値型に変換します。(サンプルを実行する

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>yuiスライダーサンプル(値を設定する)</title>
<link rel="stylesheet" href="slider.css" type="text/css" media="all">
<script src="YAHOO.js" type="text/javascript"></script>
<script src="dom.js" type="text/javascript"></script>
<script src="dragdrop.js" type="text/javascript"></script>
<script src="event.js" type="text/javascript"></script>
<script src="animation.js" type="text/javascript"></script>
<script src="slider.js" type="text/javascript"></script>
<script type="text/javascript"><!--
// スライダー初期化
var slider;
window.onload = function () {
slider = YAHOO.widget.Slider.getHorizSlider("sliderbg", "sliderthumb", 0, 100);
}
function setVal() {
var n = parseFloat(document.getElementById("num").value);
slider.setValue(n, true);
}
// --></script>
</head>
<body>
<h1>yuiスライダーサンプル(値を設定する)</h1>
<p>ドラッグしてスライダーを動かすことができます</p>
<form>
<input type="text" size="6" value="10" id="num"><input type="button" value="設定" onClick="setVal()">
</form>
<div id="sliderbg">
<div id="sliderthumb"><img src="images/button.gif"></div>
</div>
</body>
</html>

 ここまでのサンプルは値を指定すると一瞬で移動しますが、アニメーションさせながら移動させることができます。最初にも書きましたが、setValue()の二番目のパラメーターをfalseにすると指定した値のところまでスムーズにアニメーションしながらスライダーのサムが移動します。ただし、animation.jsライブラリが読み込まれていない場合には、trueを指定した場合と同様に一瞬で移動します(この場合はエラーになりません)。
 実際のサンプルは以下のようになります。(サンプルを実行する

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>yuiスライダーサンプル(スムーズに移動させる)</title>
<link rel="stylesheet" href="slider.css" type="text/css" media="all">
<script src="YAHOO.js" type="text/javascript"></script>
<script src="dom.js" type="text/javascript"></script>
<script src="dragdrop.js" type="text/javascript"></script>
<script src="event.js" type="text/javascript"></script>
<script src="animation.js" type="text/javascript"></script>
<script src="slider.js" type="text/javascript"></script>
<script type="text/javascript"><!--
// スライダー初期化
var slider;
window.onload = function () {
slider = YAHOO.widget.Slider.getHorizSlider("sliderbg", "sliderthumb", 0, 100);
}
function setVal() {
var n = parseFloat(document.getElementById("num").value);
slider.setValue(n, false);
}
// --></script>
</head>
<body>
<h1>yuiスライダーサンプル(スムーズに移動させる)</h1>
<p>ドラッグしてスライダーを動かすことができます</p>
<form>
<input type="text" size="6" value="10" id="num"><input type="button" value="設定" onClick="setVal()">
</form>
<div id="sliderbg">
<div id="sliderthumb"><img src="images/button.gif"></div>
</div>
</body>
</html>

[目次へ]

(2006.3.11)