我正在使用来自
here的代码使用Angularjs创建一个图像滑块
使用AngularJS 1.15,我可以让图像滑入.但是当第二张图像进入时,第一张图像将消失而不是滑出.有人可以帮忙吗?
注意:这不适用于Firefox和IE,但适用于Chrome.
这是我的代码
HTML
<div ng-controller="slideShowController" class="imageslide" ng-switch='slideshow' ng-animate="'animate'"> <div class="slider-content" ng-switch-when="1"> <img src="asset/building.jpg" width="100%" height="400px"/> </div> <div class="slider-content" ng-switch-when="2"> <img src="asset/slide-2.jpg" width="100%" height="400px"/> </div> <div class="slider-content" ng-switch-when="3"> <img src="asset/slide-3.jpg" width="100%" height="400px"/> </div> <div class="slider-content" ng-switch-when="4"> <img src="asset/slide-4.jpg" width="100%" height="400px"/> </div> </div>
使用Javascript
function slideShowController($scope,$timeout) { var slidesInSlideshow = 4; var slidesTimeIntervalInMs = 3000; $scope.slideshow = 1; var slideTimer = $timeout(function interval() { $scope.slideshow = ($scope.slideshow % slidesInSlideshow) + 1; slideTimer = $timeout(interval,slidesTimeIntervalInMs); },slidesTimeIntervalInMs); }
CSS
.imageslide{ width:100%; height:400px; margin: 0 auto; margin-bottom: 20px; } .imageslide .slider-content { position: absolute; width:100%; height:400px; } .animate-enter,.animate-leave { -webkit-transition:1000ms cubic-bezier(.165,.84,.44,1) all; -moz-transition:1000ms cubic-bezier(.165,1) all; -ms-transition:1000ms cubic-bezier(.165,1) all; -o-transition:1000ms cubic-bezier(.165,1) all; transition:1000ms cubic-bezier(.165,1) all; } .animate-enter { left:100%; } .animate-leave.animate-leave-active { left:-100%; } .animate-enter.animate-enter-active,.animate-leave { left:0; }