swiper在单个页面同时绑定多个滑动效果+动画效果,如何才能不冲突

发布于 2022-09-05 23:28:21 字数 7590 浏览 15 评论 0

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>        
     <link href="https://cdn.bootcss.com/Swiper/3.4.2/css/swiper.css" rel="stylesheet">
     <link href="https://cdn.bootcss.com/animate.css/3.5.0/animate.min.css" rel="stylesheet">
     <script src="https://cdn.bootcss.com/jquery/3.2.0/jquery.min.js"></script>     
    <script>
        //本插件由www.swiper.com.cn提供
function swiperAnimateCache(){for(allBoxes=window.document.documentElement.querySelectorAll(".ani"),i=0;i<allBoxes.length;i++)allBoxes[i].attributes["style"]?allBoxes[i].setAttribute("swiper-animate-style-cache",allBoxes[i].attributes["style"].value):allBoxes[i].setAttribute("swiper-animate-style-cache"," "),allBoxes[i].style.visibility="hidden"}function swiperAnimate(a){clearSwiperAnimate();var b=a.slides[a.activeIndex].querySelectorAll(".ani");for(i=0;i<b.length;i++)b[i].style.visibility="visible",effect=b[i].attributes["swiper-animate-effect"]?b[i].attributes["swiper-animate-effect"].value:"",b[i].className=b[i].className+"  "+effect+" "+"animated",style=b[i].attributes["style"].value,duration=b[i].attributes["swiper-animate-duration"]?b[i].attributes["swiper-animate-duration"].value:"",duration&&(style=style+"animation-duration:"+duration+";-webkit-animation-duration:"+duration+";"),delay=b[i].attributes["swiper-animate-delay"]?b[i].attributes["swiper-animate-delay"].value:"",delay&&(style=style+"animation-delay:"+delay+";-webkit-animation-delay:"+delay+";"),b[i].setAttribute("style",style)}function clearSwiperAnimate(){for(allBoxes=window.document.documentElement.querySelectorAll(".ani"),i=0;i<allBoxes.length;i++)allBoxes[i].attributes["swiper-animate-style-cache"]&&allBoxes[i].setAttribute("style",allBoxes[i].attributes["swiper-animate-style-cache"].value),allBoxes[i].style.visibility="hidden",allBoxes[i].className=allBoxes[i].className.replace("animated"," "),allBoxes[i].attributes["swiper-animate-effect"]&&(effect=allBoxes[i].attributes["swiper-animate-effect"].value,allBoxes[i].className=allBoxes[i].className.replace(effect," "))}
    </script>
        <style type="text/css">
            .fff,
            .swiper-container {
                width: 600px;
                height: 300px;
            }
            
            .swiper-slide:nth-of-type(1) {
                height: 100%;
                background: #007AFF;
            }
            
            .swiper-slide:nth-of-type(2) {
                background: #666;
                height: 100%;
            }
            
            .swiper-slide:nth-of-type(3) {
                background: #13E8E9;
                height: 100%;
            }
            
            p.ani.fadeInUp.animated {
                text-align: center;
            }
        </style>
    </head>

    <body>
        <div class="swiper-container">
            <div class="swiper-wrapper">
                <div class="swiper-slide">
                    <p class="ani" swiper-animate-effect="fadeInUp" swiper-animate-duration="0.5s" swiper-animate-delay="0.3s">内容</p>
                </div>
                <div class="swiper-slide">
                    <p class="ani" swiper-animate-effect="fadeInUp" swiper-animate-duration="0.5s" swiper-animate-delay="0.3s">内容</p>
                </div>
                <div class="swiper-slide">
                    <p class="ani" swiper-animate-effect="fadeInUp" swiper-animate-duration="0.5s" swiper-animate-delay="0.3s">内容</p>
                </div>
            </div>
    </div>
        <div class="home">
            <div class="swiper-wrapper">
                <div class="swiper-slide">
                    <p class="ani" swiper-animate-effect="bounceInDown" swiper-animate-duration="0.5s" swiper-animate-delay="0.3s">内容home</p>
                </div>
                <div class="swiper-slide">
                    <p class="ani" swiper-animate-effect="fadeInRight" swiper-animate-duration="0.5s" swiper-animate-delay="0.3s">内容home2</p>
                </div>
                <div class="swiper-slide">
                    <p class="ani" swiper-animate-effect="bounceInDown" swiper-animate-duration="0.5s" swiper-animate-delay="0.3s">内容ffff</p>
                </div>
            </div>

            <section id="html5">
                <div class="container">
                    <div class="swiper-container">
                        <div class="swiper-wrapper">
                            <div class="swiper-slide">
                                <div class="col-md-6">
                                    <h2 class="ani" swiper-animate-effect="fadeInUp" swiper-animate-duration="0.5s" swiper-animate-delay="0.3s">HTML5前端开发</h2>
                                    <p>一线资深前端开发工程师倾情打造!助你完成普通程序员到优秀工程师的华丽升级!</p>
                                    <p><span class="glyphicon glyphicon-grain mai-icon"></span>使用HTML5与CSS3技术轻松实现设备自适应展示。</p>
                                    <p><span class="glyphicon glyphicon-grain mai-icon"></span>清晰明了的语义代码结构,更高的可读性、更利于页面维护的。</p>

                                </div>
                            </div>                         
                                <div class="col-md-6">
                                    <img src="images/html5.jpg" class="img-responsive" />
                                </div>
                        </div>
                    </div>
                </div>
            </section>

        </div>
        <!--导航等组件可以放在container之外-->
    </body>
<script src="https://cdn.bootcss.com/Swiper/3.4.2/js/swiper.js"></script>
 
</html>
<script>
    $().ready(function() {
        var mySwiper = new Swiper('.swiper-container', {
            onInit: function(swiper) { //Swiper2.x的初始化是onFirstInit
                swiperAnimateCache(swiper); //隐藏动画元素 
                swiperAnimate(swiper); //初始化完成开始动画
            },
            onSlideChangeEnd: function(swiper) {
                swiperAnimate(swiper); //每个slide切换结束时也运行当前slide动画
            }
        });
        
        var home = new Swiper('.home', {
            onInit: function(swiper) { //Swiper2.x的初始化是onFirstInit
                swiperAnimateCache(swiper); //隐藏动画元素 
                swiperAnimate(swiper); //初始化完成开始动画
            },
            onSlideChangeEnd: function(swiper) {
                swiperAnimate(swiper); //每个slide切换结束时也运行当前slide动画
            }
        });
       var html5 = new Swiper('#html5', {
            onInit: function(swiper) { //Swiper2.x的初始化是onFirstInit
                swiperAnimateCache(swiper); //隐藏动画元素 
                swiperAnimate(swiper); //初始化完成开始动画
            },
            onSlideChangeEnd: function(swiper) {
                swiperAnimate(swiper); //每个slide切换结束时也运行当前slide动画
            }
        });

    })
</script>

请问下我这样同时new 多个swiper做法合理吗?我想在绑定它们各自的容器都有动画效果,不受其他的影响,可是我这样绑定虽然滑动和动画效果出来,可是其余的容器的动画内容却被隐藏了,参数具体需要如何修改,能否指点下?
yRlGO-QVRAac3LKyu1RIyg.png

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

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

发布评论

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

评论(2

忘你却要生生世世 2022-09-12 23:28:21

去百度一下就有了。。。
比如你的顶层div的class="swiper-container swiper-container1",在js中new Swiper('.swiper-container1',触发左右滑动的按钮最好也要做单独的class名处理

把人绕傻吧 2022-09-12 23:28:21

给那个swiper加一个类名,然后分配不同的配置就可以了。冲突主要是你有同样的类名存在。

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