Используйте побитовые операторы: &
|
Для установки последнего бита в 000b
:
foo = foo | 001b
Для проверки последнего бита в foo
:
if ( foo & 001b ) ....
Для очистки последнего бита в foo
:
foo = foo & 110b
я использовал XXXb
для ясности. Вы будете, вероятно, работать с ШЕСТНАДЦАТЕРИЧНЫМ представлением, в зависимости от структуры данных, в которой Вы упаковываете биты.
У вас неправильные параметры анимации. Он не требует хеша опций, только фактические варианты замедления, продолжительности и обратного вызова. Также необходимо соблюдать осторожность при использовании и
. Лучше передать его в качестве аргумента бесконечной функции.
$(this).css("left","100px");
function endless(elem){
$(elem).animate(
{ left:'-=100px' },
"linear",
5000,
function() {
$(elem).css('left','100px');
endless(elem);
}
);
};
endless(this);
Вам нужно будет вызвать endless () из обратного вызова.
function endless(item) {
$(item).animate({"left": "-=100px"}, 5000, "linear", function(){
$(item).css("left","100px");
endless(item);
});
}
endless($(".myBox"));
Вам необходимо заменить $ (this)
селектором элемента, который вы хотите оживить.
Отлично! это именно то, что я искал, но теперь
я наконец понял, как это переключить. со следующей функцией вызовите endless (0), чтобы остановить, и endless (1), чтобы включить цикл анимации.
//loop animation forever
//args: takes 1 to loop, 0 to stop
function endless(loop)
{
//animate forever
if (loop==1)
{
$('#alink').animate(
{'opacity':'toggle'},
1000,
function () { endless(1) }
);
}
//stop animation
else
{
$('#alink').css('opacity',1).stop();
}
};
//sample call
$('#alink').toggle(function(){ endless(1) },function(){ endless(0) });
спасибо за исходный код!