最近的项目首页用到图片轮播效果,于是用了 angular 写了两个 demo,主要用到angular 和 AngularUI 中的 UI Bootstrap。
主要实现如下:
用 boostrap 中的控件
在 html 中引入 ui-bootstrap.js
这个文件等:
<script src="./bower_components/angular/angular.min.js"></script>
<script src="./bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
<script src="./assets/js/app.js"></script>
<link rel="stylesheet" href="./bower_components/bootstrap/dist/css/bootstrap.min.css">
轮播图代码:
<div ng-controller="CarouselCtrl">
<div style="height: 305px">
<carousel interval="myInterval" no-wrap="noWrapSlides">
<slide ng-repeat="slide in slides" active="slide.active">
<img ng-src="" style="margin:auto;">
<div class="carousel-caption">
<h4>Slide $index</h4>
<p></p>
</div>
</slide>
</carousel>
</div>
</div>
在 angular 中的操作有:
angular.module('pictureCarousel', ['ui.bootstrap']).controller('CarouselCtrl', function ($scope) {
$scope.myInterval = 5000;
$scope.noWrapSlides = false;
var slides = $scope.slides = [];
$scope.addSlide = function() {
var newWidth = 600 + slides.length + 1;
slides.push({
image: 'http://placekitten.com/' + newWidth + '/300',
text: ['More','Extra','Lots of','Surplus'][slides.length % 4] + ' ' +
['Cats', 'Kittys', 'Felines', 'Cutes'][slides.length % 4]
});
};
for (var i=0; i<4; i++) {
$scope.addSlide();
}
});
这样就能实现如下效果:
分别写了两个 DEMO,代码托管在 github。