jquery mobile下正确地初始化swiper

发布于 2022-09-02 19:55:40 字数 1135 浏览 12 评论 0

我遇到奇怪的问题
当我在jquery mobile下使用如下的方式初始化时

$(document).on('pagebeforecreate', '#index-page', function(){
        var moreProductSwiper = new Swiper('#more-product-block', {
        direction: 'horizontal',
        loop: true,
        slidesPerView: 'auto',
        loopedSlides: 4,
        autoHeight: true,
        autoplay: 2000,
        pagination: '.swiper-pagination'
    });

无奈地发现,产生的轮播图时而正常运行,时而不行,无规律可言,无法排查错误。后来参考 http://stackoverflow.com/questions/16496078/swiper-not-working-in-jquery-mobile 后得知,swiper只有在已知宽高的情况下才能正常正常,而jquery mobile只有pageshow事件才能确保宽高。所以修改如下:

$(document).on('pageshow', '#index-page', function(){
        var moreProductSwiper = new Swiper('#more-product-block', {
        direction: 'horizontal',
        loop: true,
        slidesPerView: 'auto',
        loopedSlides: 4,
        autoHeight: true,
        autoplay: 2000,
        pagination: '.swiper-pagination'
    });

先贴出结论帮助同样问题的人,更深入原因,待研究。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

顾挽 2022-09-09 19:55:40
var swiper = new Swiper('.swiper-container', {
    pagination: '.swiper-pagination',
    paginationClickable: true,
                             observer:true,//修改swiper自己或子元素时,自动初始化swiper
observeParents:true,//修改swiper的父元素时,自动初始化swipe
});

作者: https://segmentfault.com/a/1190000002962202

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文