艺灵设计

全部文章
×

超帅轮播插件tabstools.js教程之实现数字+箭头+多栏轮播

作者:艺灵设计 - 来源:http://www.yilingsj.com - 发布时间:2016-05-04 17:22:31 - 阅: - 评:3 - 积分:0

摘要:
  前面我们讲了tabstools.js插件可实现多种轮播,如:选项卡轮播、数字轮播、缩略图轮播、卡盘轮播、等等,今天我们再来了解下多栏轮播效果......

万万没想到!写这篇文章竞是在两个月之后......虽然写的有点晚,但该分享的还是要有的。

两个月前,艺灵分享了自己制作的一款jquery插件-- 超帅轮播插件tabstools.js,目前已写了两篇不同的教程来挖掘此插件的功能,想了解的看官可前去了解。今天,我们将来分析下这个多栏滚动轮播特效。

一、什么是多栏滚动轮播

艺灵自己定义的名词,还是上图吧,这样理解起来比较快速一点。配图:多栏滚动轮播解析图

如图所示,此时的轮播每次会滚动多个栏目,因此,艺灵称之为多栏滚动轮播。

二、实现方法

如果看官想自己动手制作这个效果的话,首先要实现普通的轮播效果才行!只有解决了普通的轮播问题,才能实现多栏轮播!废话不多说,上案例吧。

三、demo效果及源码

三栏轮播,每次滚动两栏。展示效果:

1.1、html源码

html源码框架

  1. <!--数字+箭头+多栏轮播外框架-->
  2. <div class="ylsj-banner" id="yilingsj-tabs_duolan">
  3.  <!--目标列表-->
  4.  <div class="gytab-hd">
  5.   <a class="gh-list on">1</a><a class="gh-list">2</a><a class="gh-list">3</a><a class="gh-list">5</a><a class="gh-list">5</a>
  6.  </div>
  7.  <!--内容列表-->
  8.  <div class="gytab-bdw">
  9.   <ul class="gytab-bd">
  10.    <li class="gb-list bd-on">
  11.     <div class="bg-ccc">1<l/div>
  12.    </li>
  13.    <li class="gb-list" >
  14.     <div class="bg-ddd">2<l/div>
  15.    </li>
  16.    <li class="gb-list" >
  17.     <div class="bg-eee">3<l/div>
  18.    </li>
  19.    <li class="gb-list" >
  20.     <div class="bg-222">4<l/div>
  21.    </li>
  22.    <li class="gb-list" >
  23.     <div class="bg-333">5<l/div>
  24.    </li>
  25.    <li class="gb-list" >
  26.     <div class="bg-444">6<l/div>
  27.    </li>
  28.    <li class="gb-list" >
  29.     <div class="bg-555">7<l/div>
  30.    </li>
  31.    <li class="gb-list" >
  32.     <div class="bg-666">8<l/div>
  33.    </li>
  34.    <li class="gb-list" >
  35.     <div class="bg-777">9<l/div>
  36.    </li>
  37.    <li class="gb-list" >
  38.     <div class="bg-888">10<l/div>
  39.    </li>
  40.   </ul>
  41.  </div>
  42.  <!--翻页按钮-->
  43.  <div class="gytab-btn">
  44.   <span class="gy-prev"><</span>
  45.   <span class="gy-next">></span>
  46.  </div>
  47. </div>

css样式

  1. <style>
  2. /*轮播公用代码*/
  3. .ylsj-banner{position:relative;margin:0 auto}
  4. .ylsj-banner .gytab-bdw{height:100%;overflow:hidden}
  5. .ylsj-banner .gytab-bd{width:100%}
  6. .ylsj-banner .gb-list{width:100%;height:100px;overflow:hidden;float:left;background:#fff;display:none}
  7. .ylsj-banner .gb-list img{width:100%;height:100%}
  8. .ylsj-banner .gytab-bd .bd-on{z-index:10}
  9. .ylsj-banner .gytab-bd .bd-on img{}
  10. .ylsj-banner .gytab-hd{width:100%}
  11. .ylsj-banner .gytab-hd .gh-list{display:inline-block;cursor:pointer}
  12. .ylsj-banner .gytab-hd .on{}
  13. .gytab-btn{position:absolute;cursor:pointer}
  14. /*多栏*/
  15. #yilingsj-tabs_duolan{height:75px;width:320px}
  16. #yilingsj-tabs_duolan .gytab-bdw{width:320px}
  17. #yilingsj-tabs_duolan .gytab-bd{height:75px;width:330px}
  18. #yilingsj-tabs_duolan .gb-list{height:75px;width:100px;margin-right: 10px;float: left;display: block;}
  19. #yilingsj-tabs_duolan .gb-list div{height: 100%;font-size: 30px;color: #fff;}
  20. #yilingsj-tabs_duolan .gytab-hd{position:absolute;bottom:10px;text-align:center;_font-size:0;_overflow:hidden;_height:10px;z-index:10}
  21. #yilingsj-tabs_duolan .gh-list{width:16px;height:16px;line-height:16px;margin:0 5px;font-size:12px;background-color:#cacaca;border-radius:50%;text-align:center}
  22. #yilingsj-tabs_duolan .gytab-hd .on{background-color:#ff9000}
  23. #yilingsj-tabs_duolan .gytab-btn{top:50%;width:100%;height:0;margin-top:-15px}
  24. #yilingsj-tabs_duolan .gy-prev,#yilingsj-tabs_duolan .gy-next{width:30px;height:30px;display:block;text-align:center;line-height:30px;background:rgba(255,255,255,.5)}
  25. #yilingsj-tabs_duolan .gy-next{position:absolute;right:0;top:0}
  26. .bg-ccc{background-color:#ccc;}
  27. .bg-ddd{background-color:#ddd;}
  28. .bg-eee{background-color:#eee;}
  29. .bg-222{background-color:#222;}
  30. .bg-333{background-color:#333;}
  31. .bg-444{background-color:#444;}
  32. .bg-555{background-color:#555;}
  33. .bg-666{background-color:#666;}
  34. .bg-777{background-color:#777;}
  35. .bg-888{background-color:#888;}
  36. </style>

1.2、引入tabstools.js插件

引入js文件

  1. <!--引入jquery库,建议1.8版本以上,如果页面中已引入,可忽略此库-->
  2. <script type="text/javascript" src="http://www.yilingsj.com/skin/yilingsj/js/jquery-1.8.3.min.js"></script>
  3. <!--引入tabstools.js插件,注意路径-->
  4. <script type="text/javascript" src="tabstools.js"></script>

1.3、调用插件

调用插件

  1. <script>
  2. $(function(){
  3. $('#yilingsj-tabs_duolan').tabstools({
  4.  t_num:2,  /*表示每次滚动的个数;*/
  5.  t_col:3,  /*每一组展示几个 ; t_effect为4或5时生效;*/
  6.  t_width:110,  /*内容宽度(包括边框+内外补白)*/
  7.  t_effect:4,  /*动画切换类型,4:水平滚动;*/
  8.  t_autoplay:1,  /*1:表示自动播放;*/
  9.  t_autotime:2000,  /*自动播放时间*/
  10.  t_showtime:2000,  /*动画显示时的时间*/
  11.  t_hidetime:1000  /*动画隐藏时的时间*/
  12. });
  13. });
  14. </script>

上面展示的这些源码都上上面案例的源码,最后来讲几个注意事项,也是制作多栏滚动轮播中的坑点。

四、多栏滚动中的坑点

4.1、目标列表的数量

之前我们做普通轮播时,目标列表的数量=内容列表的数量。也就是说:一个目标列表对应着一个内容列表。但在多栏轮播中,这个条件不总是成立!

为何?

首先,我们的多栏会展示超过1个的轮播,上面案例展示了3个位置,而我们最终看到目标列表的数量只有5个,并没有出现6~10。不知道看官们有没有发现这个问题。

4.2、如何算出目标列表的数量

为什么不会出现6~10呢?原因很简单:上面的多栏轮播每次滚动数量为2,总数量是10。10/2=5。所以不会出现6~10。即使看官在写html页面代码时添加了10个目标列表,在实际展示的时候也会只显示5个。因为艺灵已重新计算了一遍正确的个数。如果看官不确定到底有多少个目标列表,建议按内容的个数添加就是了。要保证一点:尽量多加,不要减少

4.3、滚动到最后面时出现空白如何替补

如果按照正常的方式来进行轮播,当目标列表展示到4的时候,此时内容列表中对应的内容为:7,8,9,也就是说:还剩下一个10没有展示。如果看官点击了目标5,下一组会展示:9,10,11。但问题是:现在内容列表的总数量只有10个!如果不进行替补,就会出现空白。即:11这个位子是空的,配图:第5次滚动后会出现一个空白区配图

那怎么办呢?

艺灵的方法是:复制前面的1,然后插入到10的后面。这样,目标5的时候展示的就是:9,10,1,也就不会出现空白了。此时也就解决了有缝轮播的问题。至于这个复制,艺灵的插件会自动进行计算,并不需要看官进行手工复制。

好了,这篇教程就到此结束。至于此插件,还有做很多效果,可支持同class的多个轮播,并且不会产生影响。上面及之前的案例均以id为标识。如果看官有兴趣,可以进行动手尝试下。

五、插件下载

源码打包下载

  1. 超帅轮播插件tabstools.js教程之选项卡特效源码.zip 
  2. demo演示 

----------完----------

转载声明:
  若亲想转载本文到其它平台,请务必保留本文出处!
本文链接:/jquery/2016-05-04/392.html

若亲不想直保留地址,含蓄保留也行。艺灵不想再看到有人拿我的技术文章到他的地盘或者是其它平台做教(装)程(B)而不留下我的痕迹。文章你可以随便转载,随便修改,但请尊重艺灵的劳动成果!谢谢理解。

亲,扫个码支持一下艺灵呗~
如果您觉得本文的内容对您有所帮助,您可以用支付宝打赏下艺灵哦!

Tag: 超帅轮播 轮播插件 tabstools.js插件 jquery轮播 箭头轮播 数字轮播 制作插件 多栏滚动轮播

上一篇: 超帅轮播插件tabstools.js教程之数字+箭头轮播秘密   下一篇: $.ajax+php实战教程之下拉时自动加载更多文章原理分析

评论区