2011-07-09 3 views
1

オブジェクトが左の一定の割合である場合にのみイベントをトリガーする必要があります.jssで.css()を使用します。 は、これまでのところ、これは私のコードです:ifステートメント.css 'percent'パーセントで

HTML:

<div id="midDiv"><img ..../></div> 

スクリプト:

$(document).ready(function(){ 
$("#midDiv").click(function() { 

    if($('#midDiv').css('left') === '50%') 
    { 
     $("#midDiv").animate({ 
    left: "+=70%"}, 
    { queue: false, duration: 900, easing:'swing' } 
    ); 
    } 
}); 

}); 

これは明らかに動作していないが、私が代わりに%の "PX" を使用している場合、それは動作します。 .css()は文字列を返しますが、パーセンテージでそれを行う方法があるかどうかを知りたいと思います。私もoffset()で試してみましたが、ピクセルでも値を返しました。

答えて

1

.css()でそのパーセンテージを取得する方法はありません。手動でそのパーセンテージを計算する必要があります。

+0

しかし、これを行うには、ドキュメントの幅を取得する必要があります。どうすればいいのですか?私はそのようなことを試してみました。そして、無限のLoLを返しました。申し訳ありません、私はちょっとjqueryとjavascriptを初めて使っています。 – Alice

0

これは、.cssが実際の値セットを返し、決して計算されないためです。

解決策の1つは、位置が!= staticの最も近い親を見つけるまでDOMツリーを上方に移動することです。幅を取得し、要素のオフセットをその値で除算します。

浮動小数点の性質上、必ずデルタを使用してください。

+0

とhtmlドキュメントの幅を取得できますか? – Alice

+0

'$(document).innerWidth()':http://api.jquery.com/innerWidth/ –

+0

あなたはちょうど私を救った、ありがとう! – Alice

関連する問題