2012-02-16 120 views
0

只是偶然發現了一個問題,我肯定必須有一個簡單的解釋,因爲某種原因我今天才迴避。jQuery css('left')報告'px'而不是'%'

如果我想確定絕對定位與PRECENTAGE值的元件CSS設置,jQuery的只有返回的像素值( http://jsfiddle.net/xTUR3/2/):

HTML:

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

CSS:

#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')); 
}); 

編輯:任何人都有一個想法,是否有一種方法檢索precentage值,而無需編寫專用的px-to-% - 轉換函數?

+0

小搜索... http://stackoverflow.com/questions/3482177/can-jquery-return-height-of-an -element-as-a-percentage – elclanrs 2012-02-16 23:20:31

+0

http://jsfiddle.net/xTUR3/3/正在爲我顯示-150%... – 2012-02-16 23:24:11

+0

@StephenSarcsamKamenar有趣... Webkit瀏覽器吐出%值... – Tomm 2012-02-16 23:30:51

回答

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 2012-02-17 00:50:34

+1

注意''lft = parseInt(lft)/ $('#wrp')。parent()。width()* 100;'看起來有點乾淨。 – Tomm 2012-02-17 00:51:05

+0

添加修復和清理:) http://jsfiddle.net/deerua/xTUR3/7/ – deerua 2012-02-17 00:55:54

相關問題