服务热线 400-660-8066

保定网站建设
首页 站内资讯

保定网站建设

站内资讯
保定网站建设 / 站内资讯 / 产品资讯 / 正文

网站制作之使用swiper插件做多组合轮播

来源: All文章
发布时间:2023-03-28 13:56:02

  近期在网站开发过程中遇到了一个需要组合轮播图片的页面,页面布局如下:

  先来讲一下具体功能是:点击左侧公司资质或者产品证书,右边切换到相应的轮播模块。中间的图片可以左右拖动切换,同时带动右边名称的选中状态切换,右边的名称点击能切换中间的图片,使对应的图片能居中放大显示,也是就是中间的当前图片与右边的名称是一一对应的。

  下面再来讲一下页面布局结构如下:

  honor

  荣誉资质

  5

  公司资质

  16

  产品证书

  高新技术企业证书

  高新技术企业

  <!--如果需要导航按钮-->

  data-delay=.2data-effect=fadeInUpSmall

  医疗器械注册证(NGS10基因)

  data-delay=.2data-effect=fadeInRight

  医疗器械注册证(NGS10基因)

  <!--如果需要导航按钮-->

  除了以上的html代码外,实现上述的功能还需要下面的js代码,这些代码看起来虽然比较复杂,但使用方法却是比较傻瓜式,直接粘贴到页面上就可以用,所以看不懂以下的JS代码也没关系,但对于一些关键的类名,例如上面的html代码写的hon_con_box1,hon_name_box1,swip_tab2等类名还是要跟JS代码对应起来,不然就实现不了多组合轮播功能,JS代码如下:

  if($(body).hasClass(swip_box)){

  //资质荣誉

  if($(.imgbox2).hasClass(swip_tab2)){

  varsib,sib2,sib3;

  if(wind_w780){

  sib=vertical;

  sib2=4;

  sib3=false;

  }else{

  sib=horizontal;

  sib2=auto;

  sib3=true;

  }

  varserSwiper1=newSwiper('.hon_con_box

  1.swiper-container',{

  slideActiveClass:'active',

  speed:1000,

  spaceBetween:10,

  autoplayDisableOnInteraction:false,

  autoplay:{

  delay:5000,

  stopOnLastSlide:false,

  disableOnInteraction:false,

  },

  on:{

  progress:function(progress){

  vari;

  varmodify;

  vartranslate;

  varscale;

  varzIndex;

  for(i=0;ithis.slides.length;i++){

  varslide=this.slides.eq(i);

  varslideProgress=this.slides[i].progress;

  modify=1;

  if(Math.abs(slideProgress)1){

  modify=(Math.abs(slideProgress)-1)*0.3+1;

  }

  translate=slideProgress*modify*sib+'px';

  scale=1-Math.abs(slideProgress)/5;

  zIndex=999-Math.abs(Math.round(10*slideProgress));

  slide.transform('translateX('+translate+')scale('+scale+')');

  slide.css('zIndex',zIndex);

  slide.css('opacity',1);

  if(Math.abs(slideProgress)3){

  slide.css('opacity',0);

  }

  }

  },

  slideChangeTransitionStart:function(){

  updateNavPosition0();

  }

  },

  navigation:{

  nextEl:'.hon_name_box

  1.swiper-button-next',

  prevEl:'.hon_name_box

  1.swiper-button-prev',

  },

  observer:true,

  observeParents:true,

  });

  varserPageSwiper1=newSwiper('.hon_name_box

  1.swiper-container',{

  direction:sib,

  slidesPerView:sib2,

  allowTouchMove:false,

  observer:true,

  observeParents:true,

  });

  $('.hon_name_box

  1.swiper-slide').on('click',function(){

  varindex=$(this).index();

  //同步运行其它swiper

  serSwiper

  1.slideTo(index);

  });

  functionupdateNavPosition0(){

  $('.hon_name_box

  1.active-nav').removeClass('active-nav');

  varactiveNav=$('.hon_name_box

  1.swiper-slide').eq(serSwiper

  1.activeIndex).addClass('active-nav');

  if(!activeNav.hasClass('swiper-slide-visible')){

  if(activeNav.index()serPageSwiper

  1.activeIndex){

  varthumbsPerNav=Math.floor(serPageSwiper

  1.width/activeNav.width());

  serPageSwiper

  1.slideTo(activeNav.index()-thumbsPerNav);

  }else{

  serPageSwiper

  1.slideTo(activeNav.index());

  }

  }

  }

  varserSwiper2=newSwiper('.hon_con_box

  2.swiper-container',{

  slideActiveClass:'active',

  speed:1000,

  spaceBetween:10,

  autoplayDisableOnInteraction:false,

  navigation:{

  nextEl:'.hon_name_box

  2.swiper-button-next',

  prevEl:'.hon_name_box

  2.swiper-button-prev',

  },

  observer:true,

  observeParents:true,

  });

  varserPageSwiper2=newSwiper('.hon_name_box

  2.swiper-container',{

  direction:sib,

  slidesPerView:sib2,

  allowTouchMove:false,

  observer:true,

  observeParents:true,

  preventClicks:false,//默认true

  });

  $('.hon_name_box

  2.swiper-slide').on('click',function(){

  varindex=$(this).index();

  //同步运行其它swiper

  serSwiper

  2.slideTo(index);

  });

  serSwiper

  2.on('slideChangeTransitionStart',function(){

  updateNavPosition1();

  //Dostuffhere

  });

  serSwiper

  2.on('progress',function(){

  vari;

  varmodify;

  vartranslate;

  varscale;

  varzIndex;

  for(i=0;ithis.slides.length;i++){

  varslide=this.slides.eq(i);

  varslideProgress=this.slides[i].progress;

  modify=1;

  if(Math.abs(slideProgress)1){

  modify=(Math.abs(slideProgress)-1)*0.3+1;

  }

  translate=slideProgress*modify*sib+'px';

  scale=1-Math.abs(slideProgress)/5;

  zIndex=999-Math.abs(Math.round(10*slideProgress));

  slide.transform('translateX('+translate+')scale('+scale+')');

  slide.css('zIndex',zIndex);

  slide.css('opacity',1);

  if(Math.abs(slideProgress)3){

  slide.css('opacity',0);

  }

  }

  });

  functionupdateNavPosition1(){

  $('.hon_name_box

  2.active-nav').removeClass('active-nav');

  varactiveNav=$('.hon_name_box

  2.swiper-slide').eq(serSwiper

  2.activeIndex).addClass('active-nav');

  if(!activeNav.hasClass('swiper-slide-visible')){

  if(activeNav.index()serPageSwiper

  2.activeIndex){

  varthumbsPerNav=Math.floor(serPageSwiper

  2.width/activeNav.width());

  serPageSwiper

  2.slideTo(activeNav.index()-thumbsPerNav);

  }else{

  serPageSwiper

  2.slideTo(activeNav.index());

  }

  }

  }

  serSwiper

  2.autoplay.stop();

  $('.hon_tab_nav_boxp').on('click',function(){

  serSwiper

  1.autoplay.stop();

  serSwiper

  2.autoplay.stop();

  $(this).addClass('on').siblings(p).removeClass('on');

  varthisIndex=$(this).index();

  $(.hon_con_casep).eq(thisIndex).show().siblings(p).hide();

  switch(thisIndex)

  {

  case0:

  serSwiper

  1.autoplay.start();

  break;

  case1:

  serSwiper

  2.autoplay.start();

  break;

  }

  });

  }

  }

  以上功能是基于swiper.js插件最新版本实现的。由于swiper插件对ie的兼容性不是很到位,所以这里的轮播不兼容ie低版本,也就是IE8以下的版本均不支持该效果,不过现在用IE8以下的浏览器比较少了,除了windowxp系统和少部分的win7系统外。

* 文章来源于网络,如有侵权,请联系客服删除处理。
在线 咨询

添加动力小姐姐微信

微信 咨询

电话咨询

400-660-8066

我们联系您

电话 咨询
微信扫码关注动力小姐姐 X
qr