响应式图片菜单式轮播,兼容手机,平板,PC

本文介绍了一种基于Bootstrap和jQuery实现的响应式轮播图效果。该轮播图能够根据屏幕尺寸调整,并且在鼠标悬停时暂停并展开当前项目。通过动态计算宽度来确保在不同设备上的良好体验。

  昨天在给自己用bootstrap写一个响应式主业模版时想用一个图片轮播js,看到了bootstrap里面的unslider.js,只有1.7k,很小,很兴奋,但使用到最后发现不兼容手机,当分辨率变化的时候不能够正常显示。于是决定自己写一个吧,有一次好像是在腾讯视频网看到了一个那种菜单栏目式的左右滑动轮播,挺好的,跟其他的不同。于是自己动手写了下。效果还行吧可以兼容手机的。

  当鼠标放上去的时候会停止播放,同时把停留的菜单栏目展开,其他缩小。如下图所示:

  

  js源码

 1 $(document).ready(function(){
 2 
 3     var width = $(document.body).width();
 4     var width10 = width * 83.33333333 /100;
 5 
 6     var width1 = width10 * 8.33333333 / 100 - 0.5;
 7     var width8 = width10 * 66.66666667 /100;
 8 
 9     var num = 0;
10 
11     function slide(){
12         var class_li = new Array('.slideone', '.slidetwo', '.slidethree', '.slidefour', '.slidefive');
13         // var num = Math.floor( Math.random()*5 );
14         $(class_li[num]).animate({ width:width8 }, '');
15 
16         class_li.splice(num, 1);
17 
18         for( var i =0; i<4 ; i++ ){
19             $(class_li[i]).animate({ width:width1 }, '');
20         }
21         if( num< 4 )
22             num++;
23         else
24             num = 0;
25     }
26 
27     var t = window.setInterval(slide, 2000);
28 
29     $(".slideone, .slidetwo, .slidethree, .slidefour, .slidefive").mouseenter(function(){
30         window.clearInterval(t);
31         $(this).animate({ width:width8 }, '');
32 
33         $(this).siblings().animate({ width:width1 }, '');
34     });
35 
36     $('ul').mouseleave(function(){
37         t = window.setInterval(slide, 2000);
38     });
39 
40 });

  因为bootstrap响应式的宽度是动态的,于是我先用jquery获取屏幕宽度,然后再分配每一个菜单栏目的宽度,还有需要展开的栏目的宽度。

  html源码

 1         <div class="row">
 2             <div class="col-md-offset-1 col-md-10 slide col-xs-12" style="padding:0px;">
 3                 <ul>
 4                     <li class="col-md-8 slideone col-xs-8"></li>
 5                     <li class="col-md-1 slidetwo col-xs-1"></li>
 6                     <li class="col-md-1 slidethree col-xs-1"></li>
 7                     <li class="col-md-1 slidefour col-xs-1"></li>
 8                     <li class="col-md-1 slidefive col-xs-1"></li>
 9                 </ul>
10             </div>
11         </div>

 

转载于:https://www.cnblogs.com/jhmydear/p/4150698.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值