jQuery css('left')报告'px'而不是'%'

时间:2012-02-16 23:15:50

标签: jquery css

偶然发现了一个问题,我肯定必须有一个简单的解释,因为某些原因我今天才能解决这个问题。

如果我想确定一个绝对定位为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'));
});
编辑:任何人都知道是否有办法在不编写专用的px-to-%转换函数的情况下检索百分比值?

1 个答案:

答案 0 :(得分: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);
});​