Trải nghiệm tôi đang cố gắng tạo là hình ảnh nền được tải lần đầu tiên, sau đó hoạt ảnh được kích hoạt để mờ dần trong phần tử được đính kèm. Tôi đang làm điều này trong AngularJS sử dụng ngAnimate và waitForImages. Cụ thể, tôi có quan điểm sau đây trong <body>
tôi:
<div ng-view="" ng-class="pageClass">
<br>
<br>
<br>
<h1 id="loading-text">Loading...</h1>
</div>
đâu pageClass
được thiết lập để landing-page
bởi $routingProvider
và bộ điều khiển và hình ảnh động kết hợp sau đây có nghĩa vụ phải cung cấp cho tôi những kết quả mong muốn:
myModule.controller('LandingPageCtrl', ['$timeout', '$animate', function ($timeout, $animate) {
$animate.on('enter', angular.element('.ng-scope'), function (element) {
console.log('cool it fired!');
});
}]).animation('.landing-page', ['$animateCss', function ($animateCss) {
return {
enter: function(element, doneFn) {
console.log('waiting...');
element.waitForImages(true).done(function() {
console.log('loaded the image!');
return $animateCss(element, {
event: 'enter',
structural: true
});
});
}
};
}]);
Và đây là các lớp SASS của tôi (scss):
.landing-page {
&.ng-enter {
transition: opacity 1s;
-webkit-transition: opacity 1s;
}
&.ng-leave {
transition: opacity 3s, left 1s ease;
-webkit-transition: opacity 3s, left 1s ease;
}
&.ng-enter,
&.reverse.ng-leave-active {
opacity: 1;
left: 0;
}
&.ng-enter-active,
&.ng-leave,
&.reverse.ng-enter-active,
&.reverse.ng-leave {
opacity: 0;
left: 0;
}
&.ng-leave-active,
&.reverse.ng-enter {
opacity: 0;
left: -100%;
}
}
Hành vi tôi đang gặp là sau khi văn bản Loading...
biến mất, tôi nhận được waiting...
trong bảng điều khiển với hiển thị đồng thời phần tử với hình nền không được tải xong, sau đó cool it fired!
. Tôi đã cọ rửa các tài liệu $ animate và $ animateCss cho các manh mối và có vẻ với tôi rằng tôi đang sử dụng chúng một cách chính xác và chúng không hoạt động như mô tả. Nếu $animate.on('enter',...)
được cho là sẽ kích hoạt sau khi nhập hoạt ảnh, tại sao nó lại kích hoạt trước nhật ký bảng điều khiển loaded the image!
? Có lẽ tôi đang thiếu một cái gì đó rõ ràng kể từ khi tôi đã nhìn vào đoạn mã này quá lâu ...