Я делаю эту снежную анимацию, и я хочу уменьшить FPS наполовину на некоторых браузерах, поэтому для этого мне нужно только переместить dom в два раза. Мне нужно установить переменную после клонирования/анимации для каждой чешуи.Как инициализировать переменную перед jQuery клонирования/анимации
Я не могу установить переменную перед клонированием, потому что тогда переменная «i» будет общей, и для каждой чешуи она будет увеличена, ее необходимо установить в пределах чешуйки.
$flake.clone().appendTo('#snowContainer').css({
left: x,
top: y,
opacity: startOpacity,
width: sizeFlake + '%',
*** I need to initialize the "i" variable here,
or somewhere before the loop "step" starts ***
color: options.flakeColor
}).stop().animate({'border-spacing': 0 },{
step: function(p, fx) {
angle += 0.01;
xadd = (Math.sin(angle) + (sizeFlake/4) * 1.5)/speed;
yadd = (Math.cos(angle) + (sizeFlake/2)/2)/speed;
x += xadd;
y += yadd;
*** if "i" variable here is not defined it throws an error ***
if(i%2==0)
{
var move = {top: y + "px", left: x + "px"};
$(fx.elem).css(move);
}
i++;
}, duration: 20000, easing:"linear", complete: function(){ $(this).remove(); //console.log("flake deleted");
}
});
Можете ли вы создать предварительный просмотр своего кода, работающего на чем-то вроде [JSFiddle] (http://jsfiddle.net/)? Если мы сможем возиться с кодом, это поможет нам вам помочь. – Turnerj