В jQuery вы можете получить «целевую» непрозрачность исчезающего элемента? - PullRequest
6 голосов
/ 04 июня 2010

Я бы хотел как-то получить целевую непрозрачность (конечное значение, к которому он анимируется) элемента, который исчезает.

Например ...

$('body').fadeTo(0.4); // 0.4
$('body').fadeIn(); // 1
$('body').fadeOut(); // 0
$('body').animate({ opacity: 0.7 }); // 0.7

Это выполнимо в jQuery?

Обновление

Для получения дополнительной информации см. Мой ответ здесь Переполнение стека . Я пытался помочь другому пользователю в SO и решил задать этот вопрос, связанный с моим ответом.

Ответы [ 2 ]

3 голосов
/ 04 июня 2010

jQuery использует внутренние функции шага, вы можете переписать функцию jQuery.fx.step.opacity, чтобы прочитать переданный jQuery.fx объект:

var old = jQuery.fx.step.opacity;

jQuery.fx.step.opacity = function( fx ) {
    console.log(fx.elem);
    console.log(fx.end);

    return old(fx);
};

Функция шага непрозрачности вызывается на каждом шаге каждой анимации непрозрачности. Возможно, вы захотите отфильтровать вышесказанное на основе fx.elem.

fx.end - конечное значение анимации, fx.now - текущее значение, а fx.start - начальное значение. fx.unit - это единица значений (в пикселях, em,% и т. Д.).

3 голосов
/ 04 июня 2010

Я не думаю, что будет. Нет атрибутов объекта, которые сообщают, куда он движется, только то, чем он является в настоящее время. Jquery просто анимирует свойства CSS.

Неудача всего остального ...

var destination = 0.4;
$('body').fadeTo(destination);
//O wow. Now we know what is fading to!
...