/ / Multiplique valores de propriedade CSS com jQuery usando * = - jquery

Multiplique os valores da propriedade CSS por jQuery usando * = - jquery

* = é um operador de atribuição de javascript válido. Por que não posso usá-lo para animar os valores das propriedades? O código abaixo não funcionará. Tudo o que quero fazer é dobrar a largura e a altura.

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

Respostas:

6 para resposta № 1

Isso não funciona simplesmente porque ninguém implementou ainda. Se você quiser fazer isso (e fazer o mundojQuery um pouco melhor), apenas dê uma olhada no "Contribut to jQuery" .page.

Para resolver o seu problema por enquanto: você tem que fazer o cálculo por conta própria - algo como o seguinte (não testado, mas você deve ter a idéia):

Para um único elemento:

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

Para vários elementos:

$(".animate").each(function(){
var element = $(this);
element .animate({
"width" : element.width()*2,
"height" : element.height()*2,
}, "slow");
});

1 para resposta № 2

Fundamentalmente, porque você está tentando passaruma expressão literal, em vez dos resultados de uma expressão. O jQuery não tem controle sobre si mesmo para entender a diferença. E por que deveria? O jQuery não deveria ter um intérprete Javascript inteiro dentro dele. Isso é um incômodo sério.

O mais próximo que você vai chegar é:

var divbox = $("div.box");
divbox.animate({
width: (divbox.width() * 2) + "px",
height: (divbox.height() * 2) + "px"
});