JQuery if else语句与百分比

时间:2013-03-19 12:01:41

标签: jquery

所以这是我的代码:

$('li a').click(function(){
    if ( $('li').width() == '7%' ) {
        $('li').animate({
            width: '86%'
        },300);
    } else {
        $('li').animate({
            width: '7%'
        },300);
    }
});

百分比似乎没有用。如果我将它改为像素,它完全,但在百分比,它似乎有错误。

任何专业人士都可以帮助我解决这个问题吗?请!

=============================================== ===================================

好的,现在我把它改成css:

$('li a').click(function(){
    if ( $('li').css('width') == '70px' ) {
        $('li').animate({
            width: '86%'
        },300);
    } else {
        $('li').animate({
            width: '70px'
        },300);
    }
});

但是当我将70px改为7%时,这是行不通的。为什么?

3 个答案:

答案 0 :(得分:5)

.width()返回一个数字,而不是一个字符串,所以你必须自己计算百分比!

答案 1 :(得分:0)

浏览器将百分比转换为像素,因此对width的任何调用都将返回像素的整数值。

获取容器宽度并乘以0.07并与之进行比较。

答案 2 :(得分:0)

width()将返回元素的物理大小(以像素为单位)。您需要根据元素父级的宽度计算其百分比宽度。这样的事可能适合你:

var the_percentage = ($('li').width() / $('li').parent().width()) * 100;
if(the_percentage == 7)
{
    // Something here...
}
else
{
    // Something else here...
}

或者,您可以执行此检查:

var li = $('li');
if((li.parent().width() * 0.07) == li.width()) {