swiper默认显示三个,中间放大且显示全部图片两边显示部分图片的实现方法

本页面内容最后的红色部分有惊喜哦!
最近在做一个活动页面,要求触摸切换图片时,默认在可视区域中显示三张图片,其中中间的一张图片比其他两张都大且全部显示,而其他两张图片只显示部分即可,于是就想到了swiper这个不依赖于任何js库的插件,但是其官网上没有相应的效果,只有那种可以同时显示三张的demo。但是产品说一定要那种效果,其他的效果不好看,于是我就上网查资料,还真让我找到了解决的办法。如下图:

swiper默认显示三个,中间放大且显示全部图片两边显示部分图片的实现方法_第1张图片







互融CLUB











以上代码中,最开始的那段js是作为移动端的自适应而写的,不是本文的重点,最后的那段js是swiper官方给出的插件的初始化调用方法,也不多说,最主要的是css代码:

#investproSwiper .swiper-slide{width:5rem;height:7.25rem;}
#investproSwiper .swiper-slide .investpro{width:4.61rem;height:6.37rem;background-size: 100% 100%;background-repeat: no-repeat;margin-top: 0.58rem;margin-left: 0.19rem;-webkit-transition: all 0.5s linear;}
#investproSwiper .swiper-slide-active .investpro{width:5.16rem;height:7.25rem;margin-left:-.08rem;margin-top:.12rem;}
#investproSwiper .swiper-slide .hrplan_slide{background-image: url(images/hrplan_small.png);}
#investproSwiper .swiper-slide-active .hrplan_slide{background-image: url(images/hrplan_big.png);}
#investproSwiper .swiper-slide .newhand_slide{background-image: url(images/newhand_small.png);}
#investproSwiper .swiper-slide-active .newhand_slide{background-image: url(images/newhand_big.png);}
#investproSwiper .swiper-slide .sxm_slide{background-image: url(images/sxm_small.png);}
#investproSwiper .swiper-slide-active .sxm_slide{background-image: url(images/sxm_big.png);}

它的原理就是中间放大且显示全部图片的地方放置的是大图,而其他两张只显示部分图片的地方放置的是该两张图片的小图,待这两张中任何一张图片被切换到中间位置时,显示的就是它的大图了,起主要作用的就是swiper的这个swiper-slide-activeclass属性,当当前元素被添加上了这个class后,那么它的子元素出现的就是大图了。不过,你事先要给每张图片都准备一张大图和一张小图。

最后,如果想让两边只显示部分图片的透明度低一点,我们可以这样改写swiper的初始化调用方法:

如下图所示:

swiper默认显示三个,中间放大且显示全部图片两边显示部分图片的实现方法_第2张图片

以下附上源代码:

swiper默认显示三个,中间放大且显示全部图片两边显示部分图片

以下更新于2017年7月20日:
上边的那种方法在实现起来有点麻烦,不仅要准备大图,还要准备小图,增加了工作量,最近在项目开发中,突然发现了 swiper 官网上其实早就有这样的案例了,只是我疏于仔细查找,所以才搞的这么麻烦,以下我就给大家贴出swiper实例吧(这样的效果和用手机浏览更配哦!):
3D 覆盖流效果

转载于:https://www.cnblogs.com/tnnyang/p/6909634.html

你可能感兴趣的:(swiper默认显示三个,中间放大且显示全部图片两边显示部分图片的实现方法)