利用swiper仿iphone时间设置滚轮控件

Posted 逆水行舟,心如止水。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用swiper仿iphone时间设置滚轮控件相关的知识,希望对你有一定的参考价值。

先贴一下实现之后的样子:

可以上下滚动选择,也可以点击选择。

具体实现:

1.关于swiper的使用就不多说啦,去官网看下都能明白。

 

2.然后是初始化swiper,这才是重点

var swiper = new Swiper(\'.swiper-container\', {
                    slidesPerView: 5,//每页显示的side个数
                    paginationClickable: true,//是否支持点击
                    spaceBetween: 5,//每个side的距离
                  direction: \'vertical\',//是否ֱ垂直居中
                  centeredSlides: true,//是否显示居中
                  initialSlide :0,//初始位置
                  slideToClickedSlide:true//是否点击居中
            });

 

初始完之后,就是对样式的调整,为了达到以下的效果,我们需要调整样式

 

 

我们可以利用这三个类,分别表示当前选中的slide的前一个,当前的slide,接下来的slider

 

让选中的slider的font-size变大,前后的slider变小,其他的slider变的更小

    .swiper-slide {
        text-align: center;
        background: #fff;
        color:gray;
        /* 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;
    }
    .swiper-slide-active{
        color:black;
         font-size: 20px;
    }
    .swiper-slide-prev{
         font-size: 16px;
    }
    .swiper-slide-next{
         font-size: 16px;
    }

ok,这样就有点样子啦。然后是这两条分割线。

我实现的思路是用定位,将一个div定上去,因为swiper设置了居中的属性,我们只要让居中那个slider展示在这个div里面就可以啦。

.active_line {
    position: absolute;
    width: 90%;
    left: 5%;
    top: 50%;
    margin-top: -0.2rem;
    height: 0.4rem;
    border-top: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
    z-index: 9;
}

 

不过要注意的一点是z-index的设置。

在项目实现的过程中,有一点也是让我琢磨了一番,毕竟是引用swiper。当初始化的时候,整个html结构是必须存在的

<div class="outer">
                    <div class="swiper-container">
                        <div class="swiper-wrapper">
                            <div class="swiper-slide">Slide 1   背景</div>
                            <div class="swiper-slide">Slide 2   北京</div>
                            <div class="swiper-slide">Slide 3   上海</div>
                            <div class="swiper-slide">Slide 4   你好</div>
                            <div class="swiper-slide">Slide 5   城市</div>
                            <div class="swiper-slide">Slide 6   深圳 </div>
                            <div class="swiper-slide">Slide 7   广州</div>
                            <div class="swiper-slide">Slide 8   成都</div>
                            <div class="swiper-slide">Slide 9</div>
                            <div class="swiper-slide">Slide 10</div>
                        </div>
                    </div>
    </div>

如果是动态创建的slider节点,不可能是先初始化再完善html。所以一定要在dom创建并插入之后再进行初始化才能正常运行。

 

以上是关于利用swiper仿iphone时间设置滚轮控件的主要内容,如果未能解决你的问题,请参考以下文章

仿ofo单车做一个轮播效果

WPF 仿语音播放 自定义控件

vs控件滚轮缩放

Qtableview滚轮缩放

vue 2 仿IOS 滚轮选择器 从入门到精通

仿腾讯云手机端产品展示页面类swiper效果(附源码)