swiper 5を用いる3 dの輪番図を行い、輪番切り替えを行う.

13439 ワード

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <title>Swiper 3D  </title>
    <link rel="stylesheet" href="css/swiper.min.css">
    <link rel="stylesheet" href="css/certify.css">
    <script src="js/swiper.min.js"></script>

</head>

<body>
    <div id="certify">
        <div class="swiper-container">
            <div class="swiper-wrapper">
                <div class="swiper-slide"><img src="images/certify01.png" />
                    <p>            </p>
                </div>
                <div class="swiper-slide"><img src="images/certify02.png" />
                    <p>              </p>
                </div>
                <div class="swiper-slide"><img src="images/certify03.png" />
                    <p>            </p>
                </div>
                <div class="swiper-slide"><img src="images/certify04.png" />
                    <p>            </p>
                </div>
                <div class="swiper-slide"><img src="images/certify05.png" />
                    <p>           </p>
                </div>
            </div>
        </div>
        <div class="swiper-pagination"></div>
        <div class="swiper-button-prev"></div>
        <div class="swiper-button-next"></div>
    </div>

    <script>
        certifySwiper = new Swiper('#certify .swiper-container', {
     
            watchSlidesProgress: true,
            slidesPerView: 'auto',
            centeredSlides: true,
            loop: true,
            loopedSlides: 5,
            autoplay: false,
            navigation: {
     
                nextEl: '.swiper-button-next',
                prevEl: '.swiper-button-prev',
            },
            pagination: {
     
                el: '.swiper-pagination',
                //clickable :true,
            },
            on: {
     
                progress: function(progress) {
     

                    //               style  。
                    //slide   slide 
                    //slideProgress:        
                    //modify:    
                    //translate            
                    //scale           
                    //zIndex          
                    for (i = 0; i < this.slides.length; i++) {
     
                        var slide = this.slides.eq(i);
                        var slideProgress = this.slides[i].progress;
                        console.log(slideProgress)
                        var modify = 1;
                        //   260              
                        var translate = slideProgress * modify * 260 + 'px';
                        var scale = 1 - Math.abs(slideProgress) / 5;
                        var zIndex = 999 - Math.abs(Math.round(10 * slideProgress));
                        //          
                        slide.transform('translateX(' + translate + ') scale(' + scale + ')');
                        slide.css('zIndex', zIndex);
                        slide.css('opacity', 1);
                        //        .  1        ,      ,    。
                        //                  2        ,      ,    。
                        if (Math.abs(slideProgress) > 3) {
     
                            slide.css('opacity', 0);
                        }
                    }
                },
                //          
                setTransition: function(transition) {
     
                    for (var i = 0; i < this.slides.length; i++) {
     
                        var slide = this.slides.eq(i)
                        slide.transition(transition);
                    }

                }
            }

        })
    </script>
</body>

</html>