bug描述:我在anjularjs 中使用了swiper轮播图,经过动态获取到数据插入swiper-slide中,我在swiper初始化中设置了loop(循环),可是在出现了一点小问题,swiper会失效,划不动,当我设置固定的数据经过ng-src 插入到swiper-silde中,会正常轮播,可是第一张图会出现空白。经过查询了资料,发现swiper和angularjs执行的机制是不一样的,swiper的机制是:初始化的时候自动扫描swiper-wrapper类下有多少个swiper-slide类块,则容许滑动多少个块。 而在angular始终在swiper初始化以后定义,swiper则没法正确scan有多少个slide(实际上找到一个待循环模板),因此划不动。html
前端精品教程:百度网盘下载前端
我在网上搜了一点资料不少人都是经过添加两个属性就解决了,但个人仍是不行,如下为插入的属性。angularjs
1
2
|
observer:
true
,
//修改swiper本身或子元素时,自动初始化swiper
observeParents:
true
,
//修改swiper的父元素时,自动初始化swiper12
|
我经过在link中初始化swiper中添加延时计时器,能够解决,尽管我延迟的时间设置为0,可是正常的效果出现了,我也不知道什么问题,若是有人知道能够解答一下。app
如下为个人代码,html代码以下ide
1
2
3
|
<
div
class
=
"swiper-slide"
ng-repeat
=
"item in arr"
>
<
img
ng-src
=
"img/{{item}}"
alt
=
""
/>
</
div
>
|
指令中的代码以下oop
前端精品教程:百度网盘下载spa
1
2
3
4
5
6
7
8
9
10
11
12
13
|
link:
function
(){
setTimeout(
function
(){
var
swiper=
new
Swiper(
".swiper3"
,{
pagination:
'.swiper-pagination3'
,
paginationClickable:
true
,
centeredSlides:
true
,
autoplay: 2000,
loop :
true
,
autoplayDisableOnInteraction:
false
,
});
},0);
}
|