如何在同一个页面多次服用swiper插件

前瞻

今天在修改一个之前的公司项目的时候遇到了手机端引用swiper插件不能多次调用的问题,页面想要实现的效果是选项卡效果,点击下图的幼儿园学校用软木、培训机构用软木能够先显示不同的轮播图。


思路

  • 6个标签每个对应一个轮播图,要想使得页面的插件调用不出现复用问题,那就需要把每个轮播图区别开,这里我是加了类名来控制的。详看代码,重点看swiper-container0...5,swiper-pagination0...5,swiper-button-next0....5,swiper-button-prev0...5
  • 当加载时显示幼儿园学校用软木的轮播图,这个只需要new Swiper()一个swiper就可以了
var swiper1 = new Swiper('.swiper-container0', {
        pagination: '.swiper-pagination0',
        nextButton: '.swiper-button-next0',
        prevButton: '.swiper-button-prev0',
        slidesPerView: 1,
        paginationClickable: true,
        spaceBetween: 30,
        loop: true
    });
  • 给6个标签添加点击事件,实现选项卡的效果,当点击培训机构用软木时,获取到当前的index,然后摧毁所有的swiper(swiper.destroy()),之后再实例化此index对应的轮播图。

代码

不要看foreach里面的内容,foreach里面的只是读取出来的是图片。先说好,代码不是我写的,是我改的,不知道为什么给写死了。

<div class="tab solution_class" id="tab02">
                    <h2><span class="current">幼儿学校用软木</span><span>培训机构用软木</span><span>商业办公用软木</span><span>影音视剧院用软木</span><span>床头电视背景墙用软木</span><span>家居个人装修用软木</span><div class="cls"></div></h2>
                    <script src="__ROOT__/moban/mweiji/js/swiper.min.js"></script>
                    <ul>
                        <div class="swiper-container swiper-container0">
                            <div class="swiper-wrapper">

                                <foreach name="youer" item="v">
                                    <div class="swiper-slide"> <a href="{:U('Home/Mnews/aone',array('id'=>$v['aid']))}" class="f_l">![]({$v['apic']})</a></div>
                                </foreach>

                            </div>
                            <!-- Add Pagination -->
                            <div class="swiper-pagination swiper-pagination0"></div>
                            <!-- Add Arrows -->
                            <div class="swiper-button-next swiper-button-next0"></div>
                            <div class="swiper-button-prev swiper-button-prev0"></div>
                        </div>
                    </ul>
                    <ul style="display:none">
                        <div class="swiper-container swiper-container1">
                            <div class="swiper-wrapper">
                                <foreach name="peixun" item="v">
                                    <div class="swiper-slide"> <a href="{:U('Home/Mnews/aone',array('id'=>$v['aid']))}" class="f_l">![]({$v['apic']})</a></div>
                                </foreach>
                            </div>
                            <!-- Add Pagination -->
                            <div class="swiper-pagination swiper-pagination1"></div>
                            <!-- Add Arrows -->
                            <div class="swiper-button-next swiper-button-next1"></div>
                            <div class="swiper-button-prev swiper-button-prev1"></div>
                        </div>
                    </ul>
                    <ul style="display:none">
                        <div class="swiper-container swiper-container2">
                            <div class="swiper-wrapper">
                                <foreach name="shangye" item="v">
                                    <div class="swiper-slide">
                                        <a href="{:U('Home/Mnews/aone',array('id'=>$v['aid']))}" class="f_l">![]({$v['apic']})</a></div>
                                </foreach>
                            </div>
                            <!-- Add Pagination -->
                            <div class="swiper-pagination swiper-pagination2"></div>
                            <!-- Add Arrows -->
                            <div class="swiper-button-next swiper-button-next2"></div>
                            <div class="swiper-button-prev swiper-button-prev2"></div>
                        </div>

                    </ul>
                    <ul style="display:none">
                        <div class="swiper-container swiper-container3">
                            <div class="swiper-wrapper">
                                <foreach name="yingyuan" item="v">
                                    <div class="swiper-slide"><a href="{:U('Home/Mnews/aone',array('id'=>$v['aid']))}" class="f_l">![]({$v['apic']})</a></div>
                                </foreach>
                            </div>
                            <!-- Add Pagination -->
                            <div class="swiper-pagination swiper-pagination3"></div>
                            <!-- Add Arrows -->
                            <div class="swiper-button-next swiper-button-next3"></div>
                            <div class="swiper-button-prev swiper-button-prev3"></div>

                        </div>
                    </ul>
                    <ul style="display:none">
                        <div class="swiper-container swiper-container4">
                            <div class="swiper-wrapper">
                                <foreach name="dianshi" item="v">
                                    <div class="swiper-slide"><a href="{:U('Home/Mnews/aone',array('id'=>$v['aid']))}" class="f_l">
                                        ![]({$v['apic']})
                                    </a></div>
                                </foreach>

                            </div>
                            <!-- Add Pagination -->
                            <div class="swiper-pagination swiper-pagination4"></div>
                            <!-- Add Arrows -->
                            <div class="swiper-button-next swiper-button-next4"></div>
                            <div class="swiper-button-prev swiper-button-prev4"></div>
                        </div>
                    </ul>
                    <ul style="display:none">
                        <div class="swiper-container swiper-container5">
                            <div class="swiper-wrapper">

                                <foreach name="jiaju" item="v">
                                    <div class="swiper-slide"> <a href="{:U('Home/Mnews/aone',array('id'=>$v['aid']))}" class="f_l">![]({$v['apic']})</a></div>
                                </foreach>
                            </div>
                            <!-- Add Pagination -->
                            <div class="swiper-pagination swiper-pagination5"></div>
                            <!-- Add Arrows -->
                            <div class="swiper-button-next swiper-button-next5"></div>
                            <div class="swiper-button-prev swiper-button-prev5"></div>
                        </div>
                        <!-- Swiper JS -->
                        <script>
                            $(function() {
                                $("#tab02 span").click(function() {
                                    var index = $(this).index();
                                    var swiper;
                                    $("#tab02").find('ul').eq(index).show().siblings('ul').hide();
                                    if(swiper !== undefined) {
                                        swiper.destroy();
                                    }
                                    swiper = createSwiper(index);
                                });
                            });

                            function createSwiper(index) {
                                var swiper = new Swiper('.swiper-container' + index, {
                                    pagination: '.swiper-pagination' + index,
                                    nextButton: '.swiper-button-next'+ index,
                                    prevButton: '.swiper-button-prev'+ index,
                                    paginationClickable: true,
                                    loop: true,

                                });
                                return swiper;
                            }
                            var swiper1 = new Swiper('.swiper-container0', {
                                pagination: '.swiper-pagination0',
                                nextButton: '.swiper-button-next0',
                                prevButton: '.swiper-button-prev0',
                                slidesPerView: 1,
                                paginationClickable: true,
                                spaceBetween: 30,
                                loop: true
                            });

                        </script>
                    </ul>
                    <script type="text/javascript">
                        var slides = ["tab02"];
                        for(var i=0; i<slides.length; i++){
                            var elemTit = document.getElementById(slides[i]).getElementsByTagName("h2")[0].getElementsByTagName("span");
                            var elemCon = document.getElementById(slides[i]).getElementsByTagName("ul");
                            slide({ handle:elemTit, content:elemCon, current:"current", mode:"mouseover" });
                        }
                    </script>
                    <a href="{:U('Home/Mnews/index')}"><div class="more_honor">点击查看更多解决方案>></div></a>
                    <div class="index_ad2" id="BizQQWPA1"><a href="tel:{:C('tellphone')}">![](__ROOT__/moban/mweiji/images/img13.jpg)</a></div>
                    <div class="index_ad2">![](__ROOT__/moban/mweiji/images/img14.jpg)</div>
                </div>

原文引自http://yzjcool.xin/index.php?m=Home&c=Article&a=index&id=8

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 9,256评论 0 6
  • 文章分类 后台文章分类列表页模板导的详细步骤建立数据表blog_category,并添加相应的文章字段使用php ...
    JoyceZhao阅读 5,718评论 0 14
  • 写了我们一家四口的房车之旅后,收到了很多朋友们的反馈。不少朋友也决定来一次房车旅行。这个经历的确难以忘怀。 在一个...
    JinWang阅读 3,398评论 0 1
  • 本书被标榜为华语世界第一部销售量过百万的身心灵必读经典。但于我而言只是一本作者为了凸显主题,将一个个虚构的小...
    小黑哥black阅读 3,446评论 0 0