1

質問をより簡潔にするために編集されました。

.css()メソッド内でouterWidth()値を使用して、「#item」の位置を幅の2倍オフセットすることはできますか?

例えば:

$("#item").css("left", - (2 x outerwidth(this)));

受け入れられた答えは、私が開発していたより幅広い関数のセットを網羅する、私が尋ねた元の(より複雑で幅広い)質問に大きく言及しています。

elem.css('left', $(window).width()+'px'); 

これにより、outerWidth()値に依存することなく、要素が適切に移動されました。

4

5 に答える 5

1

これを試して:

$("#item").css("left", - (2 * $('#item').outerWidth()));

outerWidth()はjQueryメソッドであり、それを使用するには、最初に(要素を選択して)jQueryオブジェクトを作成する必要があります。*乗算用のJavaScriptでは、演算子ではなく演算子を使用する必要があることに注意してくださいx

于 2012-07-26T12:08:20.323 に答える
1

このようなもの:

var elem = $("#item");

// 1. animate to left
elem.animate({'left': -(2 * elem.outerWidth())+'px'}, function() { 

    // 2. move to outside right border
    elem.css('left', $(window).width()+'px'); 

    // 3. animate to starting position 
    elem.animate({'left': '0px'});
});
于 2012-07-26T12:10:54.783 に答える
0

jQueryの.css()ドキュメントから:

jQuery 1.6以降、.css()は.animate()と同様の相対値を受け入れます。相対値は、現在の値をインクリメントまたはデクリメントするための+=または-=で始まる文字列です。たとえば、要素の左のパディングが10pxの場合、.css( "padding-left"、 "+ = 15")は、左のパディングの合計が25pxになります。

それから、私はあなたが欲しいものは次のとおりだと思います:

$("#item").css("left", "-=" + (2 x outerwidth(this)));

注:outerwidth上記のコード行で有効な関数(自分で作成した可能性が高い)であると想定しています。

于 2012-07-26T12:08:39.123 に答える
0

これをお探しですか?

$("#item").css("left", function(i, oldLeft){
    return -2*$(this).outerWidth();
});
于 2012-07-26T12:08:40.053 に答える
0
$("#item").css("left", - (2 * $("#item").outerwidth()));

トリックを行う必要があります

于 2012-07-26T12:08:43.000 に答える