1

jQueryの次の行について考えてみます。

var $s = $('<span><span class="one"><span class="two"></span></span></span>');

$('.one', $s).css('border', 'solid 1px black').scrollLeft(200);
$('.one', $s).css('border', 'solid 1px blue').scrollTop(200);

$(document.body).append($s);

ここで、要素がDOMにアタッチされる前にスクロールを実行したいのですが(視覚的な要件のため)、スクロールバーは0のままです。DOMにアタッチされる前に要素をスクロールするにはどうすればよいですか?

JS Fiddleの例:http://jsfiddle.net/KeesCBakker/gQbkw/1/

4

3 に答える 3

2
  1. 絶対位置で要素をボディに追加します
  2. 上部と左側を画面外の場所に設定します
  3. 要素をスクロールします
  4. 正しい場所に取り付け、絶対位置を削除します

ああ、そして別のこと、cssを使用して境界線を設定する代わりに-それをクラスに入れてください

編集: IEについてのあなたのコメントに続いてここに解決策がありますhttp://jsfiddle.net/gQbkw/4/
私はコンテナとして別のdivを使用しました、これは単純化された解決策です、IE9とクロムでそれをチェックしました

于 2012-05-02T12:03:08.400 に答える
0

このエラーは、ドキュメントに追加する前に要素を使用したことが原因で発生します。これを解決するには、最初にこの要素をドキュメントに追加してから、この要素に対して追加操作を実行する必要があります。

var $spans = $('<span><span class="one"><span class="two"></span></span></span>');

$(document.body).append($spans);

$('.one', $spans).css('border', 'solid 1px black').scrollLeft(200);
$('.one', $spans).css('border', 'solid 1px blue').scrollTop(200);
于 2012-05-02T12:34:23.017 に答える
0

DOMにアタッチされていない限り、要素をスクロールすることはできません。これは、ブラウザーがそのサイズと、スクロールできるかどうか、またはスクロールできる量を認識していないためです。

于 2012-06-22T11:08:16.887 に答える