Вместо обратных вызовов, которые не существуют в CSS, мы можем использовать свойство transition-delay
.
#selector {
overflow: hidden; // hide the element content, while height = 0
height: 0; opacity: 0;
transition: height 0ms 400ms, opacity 400ms 0ms;
}
#selector.visible {
height: 100%; opacity: 1;
transition: height 0ms 0ms, opacity 600ms 0ms;
}
Итак, что здесь происходит?
visible
, обе height
и opacity
запускают анимацию без задержки (0 мс), хотя height
принимает 0 мс для завершения анимации (эквивалент display: block
), а opacity
занимает 600 мс. visible
удален, opacity
запускает анимацию (0 мс задержка, 400 мс), а высота ждет 400 мс и только затем мгновенно восстанавливает начальное значение (эквивалент display: none
в обратном вызове анимации) . Обратите внимание, что этот подход лучше, чем при использовании visibility
. В этом случае элемент все еще занимает пространство на странице, и это не всегда удобно.
Для получения дополнительных примеров обратитесь к этой статье .
Используйте синтаксис «array» для его выполнения:
groovy:000> ["git", "--no-pager", "show", "-s", "--format='%an <%ae>'"].execute().text
===> 'John Doe <jd@example.com>'
Без должным образом разделенных параметров есть некоторый hickup, и команда приводит к ошибке:
groovy:000> sout = new StringBuilder()
===>
groovy:000> serr = new StringBuilder()
===>
groovy:000> p="git --no-pager show -s --format='%an <%ae>'".execute()
===> java.lang.UNIXProcess@5dcb4f5f
groovy:000> p.consumeProcessOutput(sout,serr)
===> null
groovy:000> p.waitFor()
// XXX exit code!
===> 128
groovy:000> serr
// XXX error
===> fatal: ambiguous argument '<%ae>'': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'