1

だからここに私のコードがあります:

$('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% に変更すると、うまくいきません。なぜ?

4

3 に答える 3

5

.width() は文字列ではなく数値を返すため、パーセンテージを自分で計算する必要があります。

于 2013-03-19T12:03:02.357 に答える
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()) {
于 2013-03-19T12:05:26.290 に答える
0

パーセンテージはブラウザによってピクセルに変換されるため、widthを呼び出すと、ピクセルの整数値が返されます。

コンテナの幅を取得し、0.07を掛けて、代わりにこれと比較します。

于 2013-03-19T12:04:33.287 に答える