В настоящее время я пытаюсь сделать анимацию CSS3 в Angular.js.
Перед анимацией я пытаюсь установить исходные свойства css с помощью Javascript.
Итак, есть ли способ инициализировать анимацию с помощью Javascript, а затем продолжить анимацию с помощью CSS3?Как инициализировать анимацию Angularjs css3 с помощью Javascript
Мое положение:
Когда пользователь нажимает на div, должно появиться диалоговое окно. Диалог должен начинаться точно над оригинальным div (такого же размера, в том же положении), а затем расти до большего размера.
Я могу оживить диалог из заданного положения и размера:
CSS:
.dialog {
position: absolute;
z-index: 10;
width:600px;
height:400px;
margin-left: -300px;
left:50%;
margin-top: 50px;
}
.dialogHolder.ng-enter .dialog {
transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1s;
width:0;
height:0;
margin-left: 0px;
}
.dialogHolder.ng-enter-active .dialog {
width:600px;
height:400px;
margin-left: -300px;
}
Я хотел бы, чтобы оживить диалог, начиная с размера щелкнули дел. Пока мой код (пока не работает) выглядит следующим образом:
HTML:
<div ng-repeat="course in data.courses" ng-click="showDialog($event)">
{{ course.cursus }}
</div>
<!-- Placeholder for blokDialogs -->
<div class="dialogHolder" ng-include="dialogTemplate.url">
DIALOG WILL BE LOADED HERE
</div>
Javascript:
app.controller('blockController', function($scope) {
$scope.showDialog = function(evt) {
// get position and size of the course block
$scope.dialogTemplate.clientRect = evt.target.getBoundingClientRect();
// load the html to show the dialog
$scope.dialogTemplate.url = 'partials/blokDialog.html';
// SHOULD I DO SOMETHING HERE?
};
});
// OR SHOULD I DO SOMETHING LIKE THIS?
app.animation('.dialogHolder', function(){
return {
// SOMEHOW SET THE WIDTH, HEIGHT, TOP, LEFT OF .dialog
};
});
Я предпочел бы сделать это без jQuery, чтобы поддерживать низкий уровень страницы.
С уважением, Хендрик Ян
Или, если вы хотите, чтобы оживить DIV с нг-включает в себя вы можете использовать ту же логику (но только с входом и выходом анимации) – NicolasMoise
Спасибо Nicolas. Это то, что я сейчас использую. Моя проблема в том, что я хочу, чтобы начальное состояние зависело от события. Таким образом, CSS в ng-enter и ng-leave различается при каждом запуске анимации. Возможно, я должен был быть немного яснее, когда объяснял, что я намерен. –