Используя jQuery, я создаю базовую анимацию «всплывающей подсказки», чтобы всплывающая подсказка появлялась в небольшой анимации, в которой она исчезает в поле зрения, а также перемещается по вертикали.
Пока у меня есть это:
$('.tooltip').fadeIn('slow');
$('.tooltip').animate({ top: "-10px" }, 'slow');
Так или иначе:
$('.tooltip').fadeIn('slow').animate({ top: "-10px" }, 'slow');
Анимации будут запускаться по очереди, сначала постепенное исчезновение, а затем вертикальная анимация. Есть ли способ сделать и то, и другое одновременно?
3 ответа
$('.tooltip').animate({ opacity: 1, top: "-10px" }, 'slow');
Однако, похоже, это не работает с элементами display: none
(в отличие от fadeIn
). Итак, вам может потребоваться указать это заранее:
$('.tooltip').css('display', 'block');
$('.tooltip').animate({ opacity: 0 }, 0);
Для людей, которые все еще смотрят пару лет спустя, все немного изменилось. Теперь вы также можете использовать queue
для .fadeIn()
, чтобы он работал следующим образом:
$('.tooltip').fadeIn({queue: false, duration: 'slow'});
$('.tooltip').animate({ top: "-10px" }, 'slow');
Это дает преимущество работы с элементами display: none
, поэтому вам не нужны дополнительные две строки кода.
Другой способ делать одновременные анимации, если вы хотите вызывать их по отдельности (например, из другого кода), - использовать queue
. Опять же, как и в случае с ответом Тинистера, вам придется использовать для этого animate, а не fadeIn:
$('.tooltip').css('opacity', 0);
$('.tooltip').show();
...
$('.tooltip').animate({opacity: 1}, {queue: false, duration: 'slow'});
$('.tooltip').animate({ top: "-10px" }, 'slow');
Похожие вопросы
Связанные вопросы
Новые вопросы
jquery
jQuery - это библиотека JavaScript, рассмотрите возможность добавления тега JavaScript. jQuery - это популярная кросс-браузерная библиотека JavaScript, которая облегчает прохождение Document Object Model (DOM), обработку событий, анимацию и взаимодействие AJAX, сводя к минимуму расхождения между браузерами. Вопрос с тегом jQuery должен быть связан с jQuery, поэтому jQuery должен использоваться в рассматриваемом коде, и в вопросе должны быть как минимум элементы, связанные с использованием jQuery.
$('.tooltip').show()
- лучшая альтернатива$('.tooltip').css('display', 'block');
.{filter:alpha(opacity=50);}
? Это тоже заботится об этой опции?