Ik heb 2 html-pagina’s, welcome.html
en login.html
die beide worden “ingevoegd” in index.html
afhankelijk van de URL via een ngview
-attribuut en routerprovider, als onderdeel van mijn AngularJS-app.
Een voorbeeld hiervan is te vinden op de AngularJS-startpaginaonder Bekabel een backend.
Mijn vraag: is er een manier om de overgang tussen welcome.html
en login.html
te animeren?
Antwoord 1, autoriteit 100%
Je kunt ook de video over deze nieuwe prestatie bekijken
UPDATEvanaf angularjs 1.2 is de manier waarop animaties werken drastisch veranderd, het meeste wordt nu beheerd met CSS, zonder dat u javascript-callbacks, enz. hoeft in te stellen. U kunt de bijgewerkte tutorial over Year Of Moo. @dfsq wees in de commentaren op een mooie reeks voorbeelden.
Antwoord 2, autoriteit 23%
Controleer deze code:
Javascript:
app.config( ["$routeProvider"], function($routeProvider){
$routeProvider.when("/part1", {"templateUrl" : "part1"});
$routeProvider.when("/part2", {"templateUrl" : "part2"});
$routeProvider.otherwise({"redirectTo":"/part1"});
}]
);
function HomeFragmentController($scope) {
$scope.$on("$routeChangeSuccess", function (scope, next, current) {
$scope.transitionState = "active"
});
}
CSS:
.fragmentWrapper {
overflow: hidden;
}
.fragment {
position: relative;
-moz-transition-property: left;
-o-transition-property: left;
-webkit-transition-property: left;
transition-property: left;
-moz-transition-duration: 0.1s;
-o-transition-duration: 0.1s;
-webkit-transition-duration: 0.1s;
transition-duration: 0.1s
}
.fragment:not(.active) {
left: 540px;
}
.fragment.active {
left: 0px;
}
HTML hoofdpagina:
<div class="fragmentWrapper" data-ng-view data-ng-controller="HomeFragmentController">
</div>
Gedeeltelijke HTML-voorbeeld:
<div id="part1" class="fragment {{transitionState}}">
</div>
Antwoord 3, autoriteit 7%
Ik weet niet zeker of ik dit rechtstreeks met AngularJS kan doen, maar je zou de weergave op geen kunnen zetten voor zowel welkom als inloggen en de dekking met een richtlijn animeren zodra ze zijn geladen.
Ik zou het zo doen. 2 Richtlijnen voor het infaden van de inhoud en uitfaden wanneer er op een link wordt geklikt. De richtlijn voor fade-outs kan eenvoudig een element animeren met een unieke ID of een service aanroepen die de fade-out uitzendt
Sjabloon:
<div class="tmplWrapper" onLoadFadeIn>
<a href="somewhere/else" fadeOut>
</div>
Richtlijnen:
angular
.directive('onLoadFadeIn', ['Fading', function('Fading') {
return function(scope, element, attrs) {
$(element).animate(...);
scope.$on('fading', function() {
$(element).animate(...);
});
}
}])
.directive('fadeOut', function() {
return function(scope, element, attrs) {
element.bind('fadeOut', function(e) {
Fading.fadeOut(e.target);
});
}
});
Service:
angular.factory('Fading', function() {
var news;
news.setActiveUnit = function() {
$rootScope.$broadcast('fadeOut');
};
return news;
})
Ik heb deze code zojuist snel samengesteld, dus er kunnen wat bugs zijn 🙂
Antwoord 4
Probeer zijn bericht te controleren. Het laat zien hoe u overgangen tussen webpagina’s implementeert met behulp van AngularJS’s ngRoute en ngAnimate: Hoe om webpagina-overgangen in iPhone-stijl te maken met AngularJS & CSS
Antwoord 5
1.Installeer angular-animate
2.Voeg het animatie-effect toe aan de klasse ng-enter
voor animatie die de pagina opent en de klasse ng-leave
voor animatie die de pagina verlaat
ter referentie: deze pagina heeft een gratis bron over de overgang van hoekige weergave https://e21code. herokuapp.com/angularjs-page-transition/