angular中使用swiper遇到的坑-左右箭头在轮播图外

2019-07-24  本文已影响0人  豁啦子

项目是angular框架,在使用swiper插件的时的坑

问题点:

<div> 
            <swiper [config]="bannerConfig">
                <div *ngFor="let bannerData of bannerList;let index = index;" (click)="openNewLink(bannerData.url)">
                    <div class="swiper-img">
                        <ng-container>
                            <img [id]="'banner' + bannerIndex" class="img"
                                src="{{bannerData.bannerPath}}">                          
                        </ng-container>
                    </div>
                </div>
            </swiper>
            <div class="swiper-button-prev swiper-button-white" aria-label="Previous slide" id="swiper-button-prev"></div>
            <div class="swiper-button-next swiper-button-white" aria-label="Next slide" id="swiper-button-next"></div>
        </div>

刚开始我嵌套后页面会出现两组箭头,并且在swiper外面这组箭头空有样式,没有功能,点击无效果;
找了半天原因,原来是navigation里面的绑定元素出了问题,里面默认的是绑定按钮的class,当外部嵌套后会在初始化的时候出现默认样式的在图片内的箭头,并且navigation绑定到了第一个class为swiper-button-next的按钮上,现在我在外部按钮上添加一个id后在navigation上绑定id就解决了,注意看上面DOM上的id
ts 代码如下:

this.bannerConfig = {
            loop: bannerLoop,
            preloadImages: true,
            updateOnImagesReady: true,
            loopFillGroupWithBlank: bannerTypeWithBlank,
            slidesPerView: 4,//bannerTypeConfig,
            slidesPerGroup: 1,//bannerTypeConfig,
            spaceBetween:10,//bannerTypeBetween,
            centeredSlides: true,   
            observer: true,
            observeParents: true,
            observeSlideChildren: true,
            lazy: false,
            autoplay: true,
            pagination: {
                el: '.swiper-pagination',
                clickable: true,
            },
            navigation: {
                nextEl: '#swiper-button-next',
                prevEl: '#swiper-button-prev',
              },
        };
上一篇下一篇

猜你喜欢

热点阅读