Значимые переходы Material design для интернета
(Извините, я не могу предоставить любой код, что я прошу, потому что я действительно не знаю, с чего начать.)
о Осмысленные Переходы пункт в руководящих принципах проектирования материалов.
Я очень заинтересован в создании такого плавного перехода внутри моего веб-приложения ( особенно тот, где изображение профиля переходит от деятельности к другой), но интересно, как это сделать с помощью html?
- - это с помощью CSS3 переход достаточно для этого (какой стиль-свойство должен я использовать для перемещения элемента прямо)?
- должен ли я использовать JS/Dart для перемещения "общего элемента представления" с помощью странной системы координат?
- может ли он работать на динамической / прокрутки макета или я должен забыть об этом?
- есть ли какие-либо советы для визуального перемещения узла из контейнера в другой при плавном переходе?
в двух словах, HTML готов к таким вещам (любым код / документация будут оценены)? Может, подождем полимерных инструментов? Или мы просто не должны делать это в интернете?
3 ответов
Проверьте полимерный элемент core-animated-pages https://elements.polymer-project.org/elements/neon-animation
у них есть отличные демонстрации, которые очень похожи на значимые переходы https://elements.polymer-project.org/elements/neon-animation?view=demo:demo/index.html&active=neon-animated-pages
демонстрация "Icon to top bar", вероятно, наиболее похожа на ту, на которую вы ссылались (вы можете просто просмотреть источник см. используемые полимерные веб-компоненты вместе с необходимыми CSS & JS
вы можете импортировать в свой проект через Bower:
bower install Polymer/core-animated-pages
и оберните свои элементы и определите переходы с атрибутом, таким как
вот код для этого примера перекрестного затухания:
<style>
#hero1 {
position: absolute;
top: 0;
left: 0;
width: 300px;
height: 300px;
background-color: orange;
}
#hero2 {
position: absolute;
top: 200px;
left: 300px;
width: 300px;
height: 300px;
background-color: orange;
}
#bottom1, #bottom2 {
position: absolute;
bottom: 0;
top: 0;
left: 0;
height: 50px;
}
#bottom1 {
background-color: blue;
}
#bottom2 {
background-color: green;
}
</style>
// hero-transition and cross-fade are declared elsewhere
<core-animated-pages transitions="hero-transition cross-fade">
<section id="page1">
<div id="hero1" hero-id="hero" hero></div>
<div id="bottom1" cross-fade></div>
</section>
<section id="page2">
<div id="hero2" hero-id="hero" hero></div>
<div id="bottom2" cross-fade></div>
</section>
</core-animated-pages>
полимер ничего из этого не делает. Это все просто HTML + CSS + JavaScript. И вы можете сделать все это без полимера.
все полимерные делает, это позволяет инкапсулировать эти вещи в пользовательский элемент.
ядро-элементы и бумага-элементы некоторые примеры. Вы можете создавать такие элементы самостоятельно или клонировать и изменять/расширять их.
насколько я знаю, полимера должен быть в состоянии сделать все это. Если еще нет, то скоро сможет.
основная идея polymer заключается в том, чтобы позволить вам сделать последовательные интерфейсы на всех устройствах (веб, компьютер, android). Поэтому, если Android L может делать эти переходы, то они, безусловно, означают, что полимер также имеет эту возможность.