拨打电话

Swiper.js不能翻页,异步加载问题解决!

发布时间:2023-09-28 16:13
发布者:admin
浏览次数:112

有时候需要给当前页面异步加载一个另外的页面,在初始化Swiper时会碰到不能翻页的问题,比如在xhr.onload函数里面,需要等数据加载完再初始化Swiper,这时候老版本的swiper.js按钮就会无法翻页!(本次测试用的5.4.5/js/swiper.js和5.4.5/js/swiper.min.js)都OK,是不是大于5.0就行,有待验证。

实例:

var url = 'page' + contentId + '.html';
var xhr = new XMLHttpRequest();														
xhr.open('GET', url, true);
xhr.onload = function() {
    if (xhr.status === 200) {
        var html = xhr.responseText;
        // 创建一个临时的 div 元素用于解析 HTML
        var tempDiv = document.createElement('div');
        tempDiv.innerHTML = html;

        // 获取临时 div 中所有的目标标签
        var targetTags = tempDiv.querySelectorAll('.swiper-slide');

        // 清空容器中的内容
        swiperWrapper.innerHTML = '';

        // 将目标标签添加到容器中
        targetTags.forEach(function(tag) {
            swiperWrapper.appendChild(tag);
        });																		
				
	// 初始化 Swiper																	
	var swiper = new Swiper('.swiper-container', {			
	slidesPerView: 1,																		
	loop: true, // 启用循环轮播																		
	keyboard: true,																
	navigation: {																
	nextEl: '.swiper-button-next',																		
	prevEl: '.swiper-button-prev',																		
	},																		
	});			
    }
};	                      
xhr.send();

将需要加载的页面加载完,初始化Swiper,完美翻页!