jQuery 图片轮播

图片轮播效果图 如上

思路:

1.每隔一定的时间切换一张图片:javascript中的setTimeout()和setInterval()符合条件,注意两者之间的区别。

2.循环问题:定义一个全局变量num,每切换了一张图片,num++,但因为是死循环,num可能无限大,用num=num%图片个数,可以保证num的值不大于图片个数。

关键代码:

 1     //图片与数字的轮播
 2     function sonCarousel(){
 3         //隐藏所有的图片,使所有的数字背景为灰色
 4         $("."+className).find("img").hide();
 5         $("."+className).find("span").removeClass("spanActivate").addClass("spanNoActivate");
 6         //$("."+className).find("span").css("background","#999");//同上效果
 7         //显示对应的图片,使激活状态的数字背景颜色为红色
 8         $("."+className).find("img:eq("+currentNum+")").show();
 9         $("."+className).find("span:eq("+currentNum+")").removeClass("spanNoActivate").addClass("spanActivate");
10         //$("."+className).find("span").css("background","#E4393C");//同上效果
11         //定时器,每一秒钟改变一次
12         carouselTime=setTimeout(sonCarousel,1000);
13         //图片序列++,实现轮换效果
14         currentNum++;
15         currentNum%=picNum;
16
17     }

轮播关键代码

3.以上两点总结来说是:隐藏所有图片,显示编号为num的图片,setTimeout特定时间再次执行本身的函数,num++,num%=num

4.图片编号css样式思路:1>绝对定位,在图片的右下角需要text-align:right;bottom:XXpx;position:absolute;

div的长度与宽度

2>每个span的样式,垂直,水平居中:height:22px;line-height:22px;width:22px;text-align:center;border-radius: 12px;为每个span做圆形,margin:0 1px;间隔

 1 .number{
 2     position: absolute;
 3     text-align: right;
 4     padding: 4px 10px;
 5     z-index: 1;
 6     bottom: 3px;
 7     width: 650px;
 8     height: 22px;
 9 }
10 .pic span{
11     display: inline-block;
12     margin: 0 1px;
13     text-align: center;
14     color: #FFFFFF;
15     border-radius: 12px ;
16     width: 22px;
17     height: 22px;
18     line-height: 22px;
19     cursor: pointer;
20 }

数字编号样式

5.动态生成图片编号:

 1    //获取图片的张数
 2     var picNum = $("." + className).find("img").length;
 3     //创建显示数字轮播的div
 4     var spanDiv = $("<div class=‘number‘></div>");
 5     for (var i = 1; i <= picNum; i++) {
 6         var spanCurrent = $("<span >" + i + "</span>");
 7         spanDiv.append(spanCurrent);
 8     }
 9     //把创建好的数字轮播添加到图片中去
10     spanDiv.appendTo("." + className);

动态生成图片编号

6.点击编号显示相应的图片:

1   //点击数字显示对应的图片
2        $(".number span").click(function(){
3          clearTimeout(carouselTime);
4         currentNum=this.innerHTML-1;
5         sonCarousel();
6     });

点击编号显示图片

 1     //实现图片轮播的效果
 2
 3 var currentNum=0;
 4 var carouselTime;
 5 function carousel(className) {
 6     //获取图片的长度与宽度
 7     var width=$("." + className).find("img").get(0).width;
 8     var height=$("." + className).find("img").get(0).height;
 9     $("." + className).css({
10         "position":"absolute",
11         "width":width,
12         "height":height
13     });
14     //获取图片的张数
15     var picNum = $("." + className).find("img").length;
16     //创建显示数字轮播的div
17     var spanDiv = $("<div class=‘number‘></div>");
18     for (var i = 1; i <= picNum; i++) {
19         var spanCurrent = $("<span >" + i + "</span>");
20         spanDiv.append(spanCurrent);
21     }
22     //把创建好的数字轮播添加到图片中去
23     spanDiv.appendTo("." + className);
24     //图片与数字的轮播
25     function sonCarousel(){
26         //隐藏所有的图片,使所有的数字背景为灰色
27         $("."+className).find("img").hide();
28         $("."+className).find("span").removeClass("spanActivate").addClass("spanNoActivate");
29         //$("."+className).find("span").css("background","#999");//同上效果
30         //显示对应的图片,使激活状态的数字背景颜色为红色
31         $("."+className).find("img:eq("+currentNum+")").show();
32         $("."+className).find("span:eq("+currentNum+")").removeClass("spanNoActivate").addClass("spanActivate");
33         //$("."+className).find("span").css("background","#E4393C");//同上效果
34         //定时器,每一秒钟改变一次
35         carouselTime=setTimeout(sonCarousel,1000);
36         //图片序列++,实现轮换效果
37         currentNum++;
38         currentNum%=picNum;
39
40     }
41     sonCarousel();
42     //点击数字显示对应的图片
43        $(".number span").click(function(){
44          clearTimeout(carouselTime);
45         currentNum=this.innerHTML-1;
46         sonCarousel();
47     });
48 }

全部js代码

 1 *{
 2     padding: 0;
 3     margin: 0;
 4     border: 0;
 5 }
 6
 7 .number{
 8     position: absolute;
 9     text-align: right;
10     padding: 4px 10px;
11     z-index: 1;
12     bottom: 3px;
13     width: 650px;
14     height: 22px;
15 }
16 .pic span{
17     display: inline-block;
18     margin: 0 1px;
19     text-align: center;
20     color: #FFFFFF;
21     border-radius: 12px ;
22     width: 22px;
23     height: 22px;
24     line-height: 22px;
25     cursor: pointer;
26 }
27 .spanActivate{
28     background-color: #E4393C;
29 }
30 .spanNoActivate{
31     background-color: #999;
32 }

全部CSS代码

 1 <!DOCTYPE html>
 2 <html lang="zh-cn">
 3 <head>
 4     <meta charset="utf-8" />
 5     <title></title>
 6     <meta name="copyright"  />
 7     <script type="text/javascript" src="jquery-1.9.1.js"></script>
 8     <link rel="stylesheet" type="text/css" href="Carousel.css">
 9     <script type="text/javascript" src="Carousel.js"></script>
10
11 </head>
12 <body>
13 <div class="pic" >
14     <img src="img/1.jpg">
15     <img src="img/2.jpg">
16     <img src="img/3.jpg">
17     <img src="img/1.jpg">
18     <img src="img/2.jpg">
19     <img src="img/3.jpg">
20
21 </div>
22 <script type="text/javascript">
23     $(document).ready(function(){
24         carousel("pic");
25     });
26 </script>
27 </body>
28 </html>
29             

全部html代码

难点:

1.setTimeout里面的函数带参数传递:

   setTimeout(function(){resetbgColor(obj);},3000);

2.jQuery创建div的样式设置问题,待解决

时间: 2024-10-18 17:24:09

jQuery 图片轮播的相关文章

jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承

上一篇文中完成的封装,还存在一个小问题,就是该轮播对象不能在同一页面中重复使用,本文将通过组合使用javascript的构造函数和原型模式创建对象来解决这个问题. 没有看过上一篇文章的朋友可以点此查看上一篇文章 (jQuery图片轮播(一)轮播实现并封装) 首先回顾一下,上文的问题所在,上文中的carsouel对象是采用字面量的方式来定义的,这样carsouel本就是一个实例,想要使用在多处时,这个对象的方法会发生冲突,最终只会执行最后的那一个.而通过采用构造函数的方式来定义对象carsouel

12款经典的白富美型—jquery图片轮播插件—前端开发必备

图片轮播是网站中的常用功能,用于在有限的网页空间内展示一组产品图片或者照片,同时还有非常吸引人的动画效果.本文向大家推荐12款实用的 jQuery 图片轮播效果插件,帮助你在你的项目中加入一些效果精美的图片轮播效果,希望这些插件能够帮助到你.Nivo Slider 首先推荐的这款插件号称世界上最棒的图片轮播插件,有独立的 jQuery 插件和 WordPress 插件两个版本. 目前下载量已经突破 1,800,000 次!jQuery 独立版本的插件主要有如下特色: ?  16个独特的过渡效果?

Nivo Slider - 世界上最棒的 jQuery 图片轮播插件

Nivo Slider 号称世界上最棒的图片轮播插件,有独立的 jQuery 插件和 WordPress 插件两个版本.目前下载量已经突破 1,800,000 次!jQuery 独立版本的插件主要有如下特色: ?  16个独特的过渡效果 ?  简洁和有效的标记 ?  加载参数设置 ?  内置方向和导航控制 ?  压缩版本大小只有12KB ?  支持链接图像 ?  支持 HTML 标题 ?  3套精美光滑的主题 ?  在MIT许可下免费使用 ?  支持响应式设计 插件下载     效果演示 您可能

jQuery图片轮播

<html ><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>图片轮播</title><style>*{margin:0px;padding:0px;}.one{ float:left; position:relative; left:0px; top:0px; margin-l

Jquery图片轮播和CSS图片轮播

学习Jquery以后,很多时候觉得比写源生代码要简单一点.我们用JQuery做了一个图片轮播的动画,感觉比写CSS要简单一些.下面我来具体讲一下是怎么用JQuery来写. <body> <div class="img_div"> <img class="img1" src="../image/img1.jpg" /> <img class="img2" src="../ima

jquery图片轮播-插件

更新内容: 1. 页面结构和css样式必定类似下边放置 2. 点击左右按钮,实现左右滑动. 3. 这一般用于多个图片轮播使用,简化并优化代码. 若因不同需求,均可自行将插件scrollimgplus.js进行相应的改造. 使用方法就不详述了, 请参见源码及相关注释:查看Demo <!doctype html> <html> <head> <meta charset="utf-8"> <title>基本材料</title&

jquery图片轮播代码

自己写的轮播代码 来张样式效果图 先贴HTML样式 <body> <div id = "wrap"> <div id="lunbo-img"> <img src="images/lunbo01.jpg" alt="" width="500" height="750"> <img src="images/lunbo02.jpg

jQuery图片轮播(一)轮播实现并封装

利用面向对象自己动手写了一个封装好的jquery轮播对象,可满足一般需求,需要使用时只需调用此对象的轮播方法即可. demo:https://github.com/zsqosos/shopweb 具体代码如下: HTML结构: 1 <div class="banner" id="J_bg_ban"> 2 <ul> 3 <li><a href="#"><img src="banner_

JQuery图片轮播滚动效果(网页效果--每日一更)

今天,带来的是一个图片的轮播滚动效果! 先来看一下效果展示:http://webfront.verynet.cc/pc/index.html 原理很简单,设置一个定时器,使图片列表在每隔一段时间后滚动一次.而循环效果,就是在每一滚动的时候,将第一张图片放到最后一张的后面,详细请看代码. HTML结构代码如下: 1 <div class="content"> 2 <div class="box"> 3 /*滚动的盒子*/ 4 <ul id