swiper4-屏幕右侧判断slide是否进入屏幕(已解决)

查看数: 1758 | 评论数: 2 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-5-8 10:48

正文摘要:

本帖最后由 半糊涂丶 于 2019-5-9 06:40 编辑 从官网下载的包中有一些demo,最后一个是右滑出现菜单栏

回复

半糊涂丶 发表于 2019-5-9 06:41:05
只需要加上 normalizeSlideIndex: false, 就可以了
半糊涂丶 发表于 2019-5-8 10:49:47
本帖最后由 半糊涂丶 于 2019-5-8 10:52 编辑

<!DOCTYPE html>
<html lang="en">
<head>
        <meta charset="utf-8">
        <title>Swiper demo</title>
        <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">

        <!-- Link Swiper's CSS -->
        <link rel="stylesheet" href="../dist/css/swiper.min.css">

        <!-- Demo styles -->
        <style>
                html, body {
                        position: relative;
                        height: 100%;
                }
                body {
                        background: #eee;
                        font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
                        font-size: 14px;
                        color: #000;
                        margin: 0;
                        padding: 0;
                }
                .swiper-container {
                        width: 100%;
                        height: 100%;
                }
                .swiper-slide {
                        text-align: center;
                        font-size: 18px;
                        background: #fff;

                        /* Center slide text vertically */
                        display: -webkit-box;
                        display: -ms-flexbox;
                        display: -webkit-flex;
                        display: flex;
                        -webkit-box-pack: center;
                        -ms-flex-pack: center;
                        -webkit-justify-content: center;
                        justify-content: center;
                        -webkit-box-align: center;
                        -ms-flex-align: center;
                        -webkit-align-items: center;
                        align-items: center;
                }
                .menu {
                        min-width: 100px;
                        width: 70%;
                        max-width: 320px;

                        background-color: #2C8DFB;
                        color: #fff;
                }
                .content {
                        width: 100%;
                }

                .menu-button {
                        position: absolute;
                        top: 0px; right: -1px;

                        padding: 15px;

                        cursor: pointer;

                        -webkit-transition: .3s;
                        transition: .3s;

                        background-color: #2C8DFB;

                        /*margin: 14px;
                        border-radius: 5px;*/
                }
                .menu-button .bar:nth-of-type(1) {
                        margin-top: 0px;
                }
                .menu-button .bar:nth-of-type(3) {
                        margin-bottom: 0px;
                }

                .bar {
                        position: relative;
                        display: block;

                        width: 50px;
                        height: 5px;

                        margin: 10px auto;
                        background-color: #fff;

                        border-radius: 10px;

                        -webkit-transition: .3s;
                        transition: .3s;
                }

                .menu-button:hover .bar:nth-of-type(1) {
                        -webkit-transform: translateY(1.5px) rotate(-4.5deg);
                        -ms-transform: translateY(1.5px) rotate(-4.5deg);
                        transform: translateY(1.5px) rotate(-4.5deg);
                }
                .menu-button:hover .bar:nth-of-type(2) {
                        opacity: .9;
                }
                .menu-button:hover .bar:nth-of-type(3) {
                        -webkit-transform: translateY(-1.5px) rotate(4.5deg);
                        -ms-transform: translateY(-1.5px) rotate(4.5deg);
                        transform: translateY(-1.5px) rotate(4.5deg);
                }

                .cross .bar:nth-of-type(1) {
                        -webkit-transform: translateY(15px) rotate(-45deg);
                        -ms-transform: translateY(15px) rotate(-45deg);
                        transform: translateY(15px) rotate(-45deg);
                }
                .cross .bar:nth-of-type(2) {
                        opacity: 0;
                }
                .cross .bar:nth-of-type(3) {
                        -webkit-transform: translateY(-15px) rotate(45deg);
                        -ms-transform: translateY(-15px) rotate(45deg);
                        transform: translateY(-15px) rotate(45deg);
                }
                .cross:hover .bar:nth-of-type(1) {
                        -webkit-transform: translateY(13.5px) rotate(-40.5deg);
                        -ms-transform: translateY(13.5px) rotate(-40.5deg);
                        transform: translateY(13.5px) rotate(-40.5deg);
                }
                .cross:hover .bar:nth-of-type(2) {
                        opacity: .1;
                }
                .cross:hover .bar:nth-of-type(3) {
                        -webkit-transform: translateY(-13.5px) rotate(40.5deg);
                        -ms-transform: translateY(-13.5px) rotate(40.5deg);
                        transform: translateY(-13.5px) rotate(40.5deg);
                }
        </style>
</head>
<body>
        <!-- Swiper -->
        <div class="swiper-container">
                <div class="swiper-wrapper">
                         <!-- 内容栏 -->
                        <div class="swiper-slide content">
                                <div class="menu-button">
                                        <div class="bar"></div>
                                        <div class="bar"></div>
                                        <div class="bar"></div>
                                </div>
                                Content slide
                        </div>
                         <!-- 菜单栏 -->
                        <div class="swiper-slide menu">Menu slide</div>                        
                </div>
        </div>

        <!-- Swiper JS -->
        <script src="../dist/js/swiper.min.js"></script>

        <!-- Initialize Swiper -->
        <script>
    var menuButton = document.querySelector('.menu-button');
    var openMenu = function (swiper) {
      swiper.slidePrev();
    };

     var swiper = new Swiper('.swiper-container', {
      slidesPerView: 'auto',
      initialSlide: 1,
      resistanceRatio: 0,
      slideToClickedSlide: true,

      on: {
        slideChangeTransitionStart: function () {
          var slider = this;

          console.log(slider.activeIndex)
          if (slider.activeIndex === 0) {
            menuButton.classList.add('cross');
            // required because of slideToClickedSlide
            menuButton.removeEventListener('click', openMenu, true);
          } else {
            menuButton.classList.remove('cross');
          }
        },
        slideChangeTransitionEnd: function () {
          var slider = this;
          if (slider.activeIndex === 1) {
            menuButton.addEventListener('click', openMenu, true);
          }
        },
        slidesPerView: function(){
                console.log(333)
        }
      }
    });
        </script>

</body>
</html>

Archiver|手机版|小黑屋|Swiper中文网 ( 粤ICP备15001020号

GMT+8, 2024-11-24 04:23 , Processed in 0.059633 second(s), 31 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表