シンクロさせる

[新着] Webテンプレートを仮オープンしました



0   名前: わかば : 2006/04/08 13:44
<TEXTAREA>を横に2つ並べて、片方のスクロールバーを下げたり上げたりすると、
もう片方も同じ動きをするようにしたいのですが、どうやればよいのかわかりません。
教えてください。参考サイトなどご存知でしたらそれでもけっこうです。

1   名前: 匿名希望 : 2006/04/08 13:44
とりあえずIE6で確認しました。
Firefoxではスクロールバーが出ない…

<script>
function func(i,s){
var a=i.scrollTop;
document.getElementById('txt'+s).scrollTop=a;
}
</script>

<textarea id="txt1" cols="1" rows="20" onscroll="func(this,2)">
ああああああああああああああああああああああああああああああああああ
</textarea>
<textarea id="txt2" cols="1" rows="20" onscroll="func(this,1)">
いいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいい
</textarea>

2   名前: 匿名希望 : 2006/04/08 13:44
 TXETAREA要素って、「複数行のテキスト入力欄」のためでその中身は無入力で送信されてもいい(だからWebブラウザ上で書き込みとか可能な領域となる)ものを記述するものだから、「横に2つ並べる」使い方って考えにくいのだけれど・・・なんのために?

http://www.tagindex.com/html_tag/form/textarea.html

3   名前: m035 : 2006/04/08 13:44  [URL
>>1
IE以外ではonscroll自体存在しないと記憶しています。
スクロールバーがあってもできないのでは。

4   名前: Pid : 2006/04/08 13:44
>>2
たとえば,Wiki の編集中に古い記述(disabled)と現在の記述(入力中)を見比べる,という使い方を勝手に考えてみました (^^;)。

>>3
scroll 自体は DOM2-Events で定義されていますので,Gecko,Opera,Safari でも使用できますよ。もちろん仰る通り,textarea 要素に「onscroll 属性は」存在しませんし,scroll が textarea 要素に適用されるかどうかも実装依存です。

scroll が使用できないなら,タイマを使って両者のスクロール量を監視するとか。「同期スクロールを行う」にチェックを入れたときのみタイマを発動,のようにすれば負荷を軽減できるかもしれません。

一覧へ戻る