循環輪播的時候,剛進入界面還是從第一張圖片開始,循環一圈的時候就從第二個開始了,第一就是一閃就過了。 找了好久東拼西湊才解決
解決辦法:
由於圖片數據是動態獲取的,所以在ajax請求成功后再初始化輪播圖
function policybannerlistcb (data) { data = JSON.parse(data) console.log(data) if(data.result == 0) { if(data.policybanlist.length == 0){ let div = '' div += ` <div class="swiper-slide"><img src="images/defaultBackground.png" alt=""></div>
` $('.swiper-wrapper').append(div) }else { let div = ''
for(let i =0; i < data.policybanlist.length; i++) { let policybanlistitem = data.policybanlist[i] div += ` <div class="swiper-slide" onClick="clickswiperimg(${policybanlistitem.policy_id})"><img src=${policybanlistitem.policy_bannerpic} alt=""></div>
` } $('.swiper-wrapper').append(div) $('.swiper-button-prev').css('display','inline-block') $('.swiper-button-next').css('display','inline-block') //初始化swiper
// 輪播圖
mySwiper = new Swiper('.swiper-container', { // 滾動方向 horizontal/vertical
direction: 'horizontal', // 自動播放
autoplay: { delay: 4000, stopOnLastSlide: false, disableOnInteraction: false, //在手動切換之后恢復到自動播放 }, onSlideChangeEnd: function(swiper){ swiper.update(); mySwiper.startAutoplay(); mySwiper.reLoop(); }, slidesPerView: 1, spaceBetween: 30, // 是否循環播放
loop: true, loopAdditionalSlides : 3, //不設置這個可能會出現播放錯亂的問題 // 如果需要分頁器(小圓點)
// 是否需要分頁器
// pagination: {
// el: '.swiper-pagination',
// paginationClickable: true,
// },
// 點擊分頁器是否切換到對應的圖片 是 true 否 false
// 如果需要前進后退按鈕
navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, // 用戶操作swiper之后,是否禁止autoplay。默認為true:停止。
// 如果設置為false,用戶操作swiper之后自動切換不會停止,每次都會重新啟動autoplay。
// 操作包括觸碰,拖動,點擊pagination等。
autoplayDisableOnInteraction: false, observer: true, //修改swiper自己或子元素時,自動初始化swiper
observeParents: true //修改swiper的父元素時,自動初始化swiper
}) } } }
比較重要的部分我用紅色字體標出了。
參考連接:
https://blog.csdn.net/weixin_43294560/article/details/103767977