jQyery实现轮播器

看到各大网站上都有一个轮播器的效果,自己不禁也想做一个,查了资料,看了轮播器的原理,慢慢的试着做了做,最终效果勉勉强强

原理:如图,试想一下,若是将<ul>的width属性值设置的很宽,直到可以装下你所有的图片,而每一个图片又用<li>包着并且设置了左浮动。

那么当我们向左移动ul的时候并且移动的距离为<li>的宽度,第二个<li>不就被移动到了<div>的窗口,这样一来图片不就被一张一张显示出来了吗?

接下来我们在设置<div>的属性overflow:hidden,那么<div>窗口以外的图片不显示,只显示移动到当前窗口的图片,是不是又完美了一些,感觉快做好了是吧!

说了一些原理,好了,直接上代码,记得引入jquery。

这是div做的布局,做的时候记得加上边框,做后在删掉,这样便于测试

 1 <div class="slideShow">
 2     <div class="nav-t">
 3         <ul>
 4             <li><a href="#" target="_blank"><img src="images/1.png" alt=""></a></li>
 5             <li><a href="#" target="_blank"><img src="images/2.png" alt=""></a></li>
 6             <li><a href="#" target="_blank"><img src="images/3.png" alt=""></a></li>
 7             <li><a href="#" target="_blank"><img src="images/4.png" alt=""></a></li>
 8             <li><a href="#" target="_blank"><img src="images/5.png" alt=""></a></li>
 9         </ul>
10         <div class="nav-b">
11             <span class="active">1</span>
12             <span>2</span>
13             <span>3</span>
14             <span>4</span>
15             <span>5</span>
16         </div>
17     </div>
18   </div>
19   <script type="text/javascript" src="jquery-min.js"></script>
20   <script type="text/javascript" src="lunbo.js"></script>

接下来设置一下样式

 1 <style>
 2     .slideShow{
 3         border:0px solid blue;
 4         width:600px;
 5         height:450px;
 6         margin:50px auto;
 7         position:relative;
 8     }
 9     .nav-t{
10         border:0px solid red;
11         width:580px;
12         height:430px;
13         margin:8px auto;
14         position:relative;
15         overflow:hidden;
16     }
17     .nav-t ul{
18         border:0px solid green;
19         list-style:none;
20         width:3000px;
21         height:430px;
22         margin:0;
23         padding:0;
24         position:relative;
25     }
26     .nav-t li{
27         height:427px;
28         width:580px;
29         float:left;
30     }
31     .nav-b{
32         position:absolute;
33         top:390px;
34         left:220px;
35         cursor:default;
36     }
37     .nav-b span{
38         margin-right:5px;
39         border:1px solid red;
40         padding:0 6px;
41         border-radius:12px;
42         color:#fff;
43         background:rgba(132,125,119,0.5);
44         cursor:pointer;
45     }
46     .nav-b span.active{
47         background:rgba(0,0,0,0.8);
48     }
49   </style>

用js实现点击轮播图片、自动轮播图片,鼠标移动上去停止轮播

 1 $(function(){
 2
 3     $(function(){
 4     var slide=$(".slideShow"),
 5         navt=slide.find(".nav-t"),
 6         ul=navt.find("ul"),
 7         navbs=slide.find(".nav-b span"),
 8         onwidth=ul.find("li").eq(0).width(),    //获取ul下的li宽度
 9         timer=null,
10         inow=0;
11     navt.hover(function(){
12             clearInterval(timer);    //鼠标移上去,清除掉自动轮播功能,即定时轮播
13         },autoPlay);
14     navbs.on("click",function(){    //点击轮播事件
15         var me=$(this);
16             inow=me.index();        //此处变量用的与自动轮播函数里的相同,为的是能在随便点击后,自动轮播时按照我们点击了的继续向后轮播,这叫动态实时
17         ul.animate({left:-inow*onwidth},0.01); //ul向左移动从而使得下一个li显示到div的当前窗口
18         navbs.removeClass("active");            //清除掉上一个点击按钮的样式
19         me.addClass("active");                    //为当前被点击的按钮添加第一个按钮样式
20     });
21     autoPlay();
22     function autoPlay(){                    //自动轮播函数
23     timer=setInterval(function(){            //开定时器
24         inow++;
25         if(inow==navbs.length){                //判断是否到了最后一张,若是到了,返回到第一张
26             inow=0
27             }
28         navbs.eq(inow).trigger("click");    //根据定时的时间用span的索引自动调用click事件,trigger为jQuery的自动调用函数
29         },3000);
30     }
31
32 });
33
34
35
36 });

看一下效果图?好的

怎么样,要不你也做一个?

时间: 2024-10-06 14:41:41

jQyery实现轮播器的相关文章

UISCrollView —— 图片轮播器封装实现(三)——(第三讲)

1.分析 利用xib布局,然后自定义一个UIView,解析xib,然后利用控制器传入数据,将其加载到控制器的view上展示即可 2. 程序结构 3. 代码具体实现 1>  xib文件 2>  创建类 XMGPageView,然后将其与xib文件关联,选中xib文件,然后设置下文中 " custom class " 为定义的类,让其来管理xib 1>    (如图,设置xib与类关联) 2>  XMGPageView.h 文件中,声明分页图片数组属性,及其一个快速

UIScrollView实现图片轮播器及其无限循环效果

图片轮播器: 一.实现效果 实现图片的自动轮播            二.实现代码 storyboard中布局 代码: 1 #import "YYViewController.h" 2 3 @interface YYViewController () <UIScrollViewDelegate> 4 @property (weak, nonatomic) IBOutlet UIScrollView *scrollview; 5 /** 6 * 页码 7 */ 8 @prop

轮播器

$(function () { //浏览器检测,判断是否是IE if(!+[1,]) { //alert("这是ie浏览器"); $('.new_Message').css('top', '14px'); //调整通知栏的位置 $('.stuUser').click(function () { if ($('.stuUser_ul ').css('display') == 'none') { $('.stuUser_ul ').css('display', 'block'); } el

UISCrollView —— 图片轮播器实现(三)——(第二讲)

1. 所用知识点 1> UIScrollView的基本属性,和UIPageControl设置,还有就是要用到NSTimer来定时实现UIScrollView的图片轮播 2> NSTimer简单介绍: 2.1  NSTimer叫做“定时器”,它的作用如下 * 在指定的时间执行指定的任务 * 每隔一段时间执行指定的任务 2.2  NSTimer简单使用: 1> 调用下面的方法就会开启一个定时任务 + (NSTimer *)scheduledTimerWithTimeInterval:(NST

Android高级图片滚动控件,编写3D版的图片轮播器

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17482089 大家好,好久不见了,最近由于工作特别繁忙,已经有一个多月的时间没写博客了,我也是深感惭愧.那么今天的这篇既然是阔别了一个多月的文章,当然要带来更加给力点的内容了,那么话不多说,赶快进入到今天的正题吧. 说 到图片轮播器,很多的Android应用中都会带有这个功能,比如说网易新闻.淘宝等.最新我们公司的一款应用也加入了这个功能,并且在图片轮播的基础上 还增加了三维立体

ios开发图片轮播器以及定时器小问题

一:图片轮播器效果如图:能实现自动轮播,到最后一页时,轮播回来,可以实现拖拽滚动 二:代码: 1 #import "ViewController.h" 2 static CGFloat const imageCount = 5; 3 @interface ViewController ()<UIScrollViewDelegate> 4 /*scrollView*/ 5 @property (nonatomic,weak)UIScrollView *scroll; 6 /*

UIScorllView和UIPageControl的使用实现图片轮播器

首先我们要先建一个project,选择iOS下的第一个Application 中的Single View Application 开始工作已经准备完毕现在我们进入到Main.storyboard拖控件 需要用到的控件有 UIScrollView也就是滚动的那个 UIPageControl也就是图片下面那几个小点 NSTimer就是定时器让其自动换页的 第一步:拖控件连线 在Main.storyboard拖一个UIScrollView放在屏幕上,在UIScrollView下面放一个UIPageCo

图片轮播器

? 1 SB里只需要两个控件: UIScrollView UIPageControl ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 7

UI-图片轮播器

效果图 LoopView.h 1 #import <UIKit/UIKit.h> 2 3 @interface LoopView : UICollectionView 4 5 - (instancetype)initWithUrls:(NSArray <NSURL *> *)urls didSelectedIndex:(void (^)(NSInteger index))selectedIndex; 6 7 @end LoopView.m 1 #import "LoopV