2012-02-16 15 views
0

何らかの理由で今日私にはわかりませんが簡単な説明が必要です。jQuery css( 'left')は '%'の代わりに 'px'を報告します

HTML::

<div id="wrp">test</div> 
<div id="out">$('wrp').css('left') = <span></span></div> 

CSS:

私は絶対にPRECENTAGE値と位置付け要素のCSSの設定を決定したい場合は、jQueryのは、画素値のみ( http://jsfiddle.net/xTUR3/2/)を返します。

#wrp { 
    position: absolute; 
    left: -150%; 
    width: 200%; 
    background-color: green; 
    height: 50%;  
} 

#out { 
    position: absolute; 
    top: 50%;  
} 

JS:

$(document).ready(function() { 
    var wrp = $('#wrp'); 
    $('#out span').html(wrp.css('left')); 
}); 

EDIT:専用のpx-to-%変換関数を記述せずにprecentage値を取得する方法があるかどうかは誰でも分かりますか?

+0

少し検索... http://stackoverflow.com/questions/3482177/can-jquery-return-height-of-anを-element-as-a-percentage – elclanrs

+0

http://jsfiddle.net/xTUR3/3/私のために-150%を表示しています... –

+0

@StephenSarcsamKamenar面白い... Webkitのブラウザが%の値を吐き出しました... – Tomm

答えて

0

you

コードのために少しのサンプル作り:

$(document).ready(function() { 
    var lft = $('#wrp').css("left")+""; 
    if (lft.match("px")) { 
     lft = (lft.split("px").join("")*1/$('#wrp').parent().width())*100; 
     if ($.browser == "msie") 
      lft = lft>0 ? Math.ceil(lft) : Math.floor(lft); 
     lft += "%";      
    } 
    $('#out span').html(lft); 
});​ 
+0

ありがとうございますが、このためのネイティブjQueryソリューションがあるかどうかは疑問でした。私はオリジナルの投稿が十分にはっきりしていないことに気付き、編集しました。 – Tomm

+1

サイドノート 'lft = parseInt(lft)/ $( '#wrp')。parent()。width()* 100;'は少しきれいに見えます。 – Tomm

+0

修正とクリーンアップを追加:http://jsfiddle.net/deerua/xTUR3/7/ – deerua

関連する問題