1.这几天一直在研究这个小插件的做法,如图
2.开始想用angular来实现,发现去绑定滑动事件进行判断滑动距离很麻烦,考虑到之前用过swiper这个插件,就尝试用swiper做了一下,很快就成功了。
3.贴出代码来看看吧:
html部分,我用的指令来做的,所以html部分很少啦:
<ion-content class="padding">
<list-scroll data="list"></list-scroll>
<!-- Swiper -->
</ion-content>
js部分:
angular.module('starter.controllers', [])
.directive('listScroll',function(){
return {
restrict:'E',
scope:{
data:'='
},
template:'<div class="chooseDiv">'+
'<div class="swiper-container">'+
'<div class="swiper-wrapper">'+
'<div class="swiper-slide" ng-repeat="x in data" repeat-finish="renderFinish()">{{x}}</div>'+
'</div>'+
'</div>'+
'<div class="mark_div"></div>'+
'</div>',
link:function($scope,element,attrs){
$scope.renderFinish = function(){
var mySwiper1 = new Swiper('.swiper-container',{
direction: 'vertical',
slidesPerView: 5,
centeredSlides: true
})
}
}
}
})
.directive('repeatFinish',function(){
return {
link: function(scope,element,attr){
if(scope.$last == true){
console.log('ng-repeat执行完毕')
scope.$eval( attr.repeatFinish )
}
}
}
})
.controller('DashCtrl', function($scope,$ionicScrollDelegate) {
console.log($scope);
$scope.list = ['please choose','湖北','湖南','浙江','江苏','广东','广西','深圳','福建'];
})
这就是所有代码了,,终于实现了,两天的努力没白费!
注:swiper的配置请参考[http://www.swiper.com.cn/api/Effects/2015/0308/194.html]