おなじみscriptaculous.jsでスライダーインターフェースを実現するControl.Slider。
すっごく便利なんだけど、なぜか1pxしかスライドしないバグで1日はまってしまいました。
どうやら下記のようにスタイルのvisibilityやdisplay非表示にすると駄目らしい。
<div id="slide" style="display: hidden;">
<div id="track1" style="margin: 40px; height: 200px; background-color: rgb(170, 170, 170); width: 1px;">
<div class="selected" id="handle1" style="width: 10px; height: 5px; background-color: rgb(255, 0, 0); position: relative; top: 25px;"></div>
</div>
</div>
まだ確認が取れていなくて、私の予測でしかないのですが、
おそらく、 new Control.Slider()された時点で、画面上で非表示になっていると、
スライド幅(デフォルトではスライドするトラックのピクセル長)が取得できず、上手く動かないようだ。
オプションのmaximumあたりの指定で回避できるかも知れないけど、
あまり頻繁に遭遇するシュチュエーションではないので、未確認。
取り合えず回避策としては初期表示の際はdisplay: block;にしておいて、
onload()で$('id').style.display=hidden;にすることで回避。
onloadにあまり局所的なコード入れたくないけど、一応応急対処。
オプション辺り試してみて回避可能であれば追記します。
でもこんな使い方するひといるのかな〜?
カテゴリ
プログラミングトラックバック(0)
このブログ記事を参照しているブログ一覧: scriptaculous.js -Control.Sliderのバグ(仕様?)
このブログ記事に対するトラックバックURL: http://hackmylife.net/mt/mt-tb.cgi/248
















コメントする