4

*= は有効な JavaScript 代入演算子です。プロパティ値のアニメーション化に使用できないのはなぜですか? 以下のコードは機能しません。私がしたいのは、幅と高さを2倍にすることだけです。

$('div.box').animate({
    'width' : '*=2',
    'height' : '*=2',
}, 'slow');
4

2 に答える 2

6

誰もまだ実装していないため、これは機能しません。あなたがそうしたい場合(そして作ります世界jQuery の方が少し良い)、"Contribut to jQuery".page を見てください

今のところ問題を解決するには、自分で計算を行う必要があります-次のようなものです(テストされていませんが、アイデアを得る必要があります):

単一の要素の場合:

var element = $('#animate');
element .animate({
  'width' : element.width()*2,
  'height' : element.height()*2,
}, 'slow');

複数の要素の場合:

$('.animate').each(function(){
  var element = $(this);
  element .animate({
    'width' : element.width()*2,
    'height' : element.height()*2,
  }, 'slow');
});
于 2013-10-06T06:24:43.023 に答える
1

基本的に、式の結果ではなく、式リテラルを渡そうとしているためです。jQuery には、違いを理解するための処理がありません。そして、なぜそれが必要なのですか?jQuery 内に Javascript インタープリター全体を含める必要はありません。それは深刻な膨張です。

最も近いのは次のとおりです。

var divbox = $('div.box');
divbox.animate({ 
    width: (divbox.width() * 2) + 'px', 
    height: (divbox.height() * 2) + 'px'
});
于 2013-10-06T06:23:55.920 に答える