В jQuery можно ли получить “целевую” непрозрачность элемента, который исчезает?

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

Например...

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

Действительно ли это выполнимо в jQuery?

Обновление

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

6
задан Community 23 May 2017 в 10:24
поделиться

2 ответа

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
ответ дан 17 December 2019 в 02:24
поделиться

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

Если все остальное не поможет...

var destination = 0.4;
$('body').fadeTo(destination);
//O wow. Now we know what is fading to!
3
ответ дан 17 December 2019 в 02:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: