-1

HTMLでは、子divが親divよりも大きい場合、適切なスタイルルールを設定すると、親divにスクロールバーが作成されます。

ただし、スクロールの試行が発生したときに(矢印キーを押して、要素に対して適切なjavascript呼び出しを行うことにより)、子で必要最小限のサイズの拡張が発生し、スクロールできる程度にスクロールできるようにする必要があります。子供がすでにそんなに大きいなら、とにかくスクロールしたでしょう。

もう一度言いますが、子が幅200ピクセルの親の中で幅300ピクセルで、右矢印キーを押して右に20ピクセルスクロールした場合、同じシナリオで子が200ピクセルの場合、拡大したいと思います。幅を20ピクセル、可能であればそれ以上にしないで、20ピクセル右にスクロールします。

これはすべて、サブ要素が実際に親よりも大きいかどうかに関係なく、親内でサブ要素をスクロールさせる方法がないことを前提としています。十分な調査をしていない場合は、事前にお詫び申し上げます。:)

4

1 に答える 1

0

overflow: scrollこのスタイルでは、子のサイズに関係なくスクロールバーが表示されることをご存知でしょう。このデモのようにスクロールを引き起こすより大きなディメンションを持つ追加のラッパーdivを用意するのではなく、実際に子ディメンションをブーストするためにJavascriptが必要ですか?Safariは、デフォルトで選択したスクロールdiv内で矢印キーを下に約20ピクセルスクロールしていることを知っています。他のブラウザにも、この機能があると思います。

javascriptを使用してdivサイズを増やす必要がある場合、jQueryには役立つ関数がいくつかあります。左矢印キーと右矢印キー(それぞれキーコード37と39)を探す.keydown()メソッドと.animate またはその他のCSSメソッドは、一緒にチェーンされたdivのサイズを変更するために機能します。

.scroll ()メソッドも役立つ可能性があります。overflow: scrollプロパティがすでに適用されているscrollメソッドにサイズ変更コードをチェーンすることができます。スクロールバーが空の場合でも、ブラウザーが.scrollメソッドをトリガーするかどうかをテストします。そうでない場合は、子を親のdivよりも1pxだけ広く/高くしてから、jQueryを使用してユーザーのスクロールでさらにサイズを変更することができます。

大まかに言えば、javascript/jQueryのサイズ変更とスクロールはお勧めしません。さまざまなブラウザ、特にモバイルブラウザとの互換性は、一貫性がないか、使用できません。あなたのニーズが正確に何であるかはわかりませんが、HTML / CSSだけでそれを達成できれば、はるかにクリーンで互換性が高くなります。実行しなくても使いやすさが失われない場合のために、JavaScriptを予約します。

于 2012-08-09T03:48:07.290 に答える