轮播图jquery代码(jquery自动轮播图代码)

http://www.itjxue.com  2023-01-26 10:55  来源:未知  点击次数: 

jquery图片轮播代码

$(".btn_box?li").css({backgroundPosition:"-13px?-5px"});

//如果还需设置其他参数,可用下面的格式:

$(".btn_box?li").css({backgroundPosition:"-13px?-5px",backgroundColor:"#cccccc"});

用jquery实现图片轮播怎么写呢求指教

*{??

????margin:?0;??

????padding:?0;??

}??

ul{??

????list-style:none;??

}??

.slideShow{??

????width:?620px;??

????height:?700px;?????/*其实就是图片的高度*/??

????border:?1px?#eeeeee?solid;??

????margin:?100px?auto;??

????position:?relative;??

????overflow:?hidden;????/*此处需要将溢出框架的图片部分隐藏*/??

}??

.slideShow?ul{??

????width:?2500px;??

????position:?relative;?????/*此处需注意relative?:?对象不可层叠,但将依据left,right,top,bottom等属性在正常文档流中偏移位置,如果没有这个属性,图片将不可左右移动*/??

}??

.slideShow?ul?li{??

????float:?left;?????/*让四张图片左浮动,形成并排的横着布局,方便点击按钮时的左移动*/??

????width:?620px;??

}??

.slideShow?.showNav{?????/*用绝对定位给数字按钮进行布局*/??

????position:?absolute;??

????right:?10px;??

????bottom:?5px;??

????text-align:center;??

????font-size:?12px;??????

????line-height:?20px;??

}??

.slideShow?.showNav?span{??

????cursor:?pointer;??

????display:?block;??

????float:?left;??

????width:?20px;??

????height:?20px;??

????background:?#ff5a28;??

????margin-left:?2px;??

????color:?#fff;??

}??

.slideShow?.showNav?.active{??

????background:?#b63e1a;??

}??

js代码规范:

script?src="../../../jQuery/js/jquery-2.1.4.js"/script?script?type="text/javascript"??

??

$(document).ready(function(){??????

??

var?slideShow=$(".slideShow"),????????????????????????????????????????????????????????????????????//获取最外层框架的名称?????

??

ul=slideShow.find("ul"),???????????????

??

showNumber=slideShow.find(".showNav?span"),??????????????????????????????????????????????//获取按钮??????????

??

oneWidth=slideShow.find("ul?li").eq(0).width();????????????????????????????????????????//获取每个图片的宽度??????????

??

var?timer=null;?????????????????????????????????????????????????????????????????????????????????????//定时器返回值,主要用于关闭定时器??????????

??

var?iNow=0;?????????????????????????????????????????????????????????????????????????????????????????//iNow为正在展示的图片索引值,当用户打开网页时首先显示第一张图,即索引值为0??????????????????

??

showNumber.on("click",function(){??????????????????????????????????????????????????????//为每个按钮绑定一个点击事件???????????????????

??

$(this).addClass("active").siblings().removeClass("active");??????????????????//按钮点击时为这个按钮添加高亮状态,并且将其他按钮高亮状态去掉??????????????

??

var?index=$(this).index();????????????????????????????????????????????????????????????????//获取哪个按钮被点击,也就是找到被点击按钮的索引值??????????????

??

iNow=index;??????????????

??

ul.animate({????"left":-oneWidth*iNow,???????????????????????????????//注意此处用到left属性,所以ul的样式里面需要设置position:?relative;?让ul左移N个图片大小的宽度,N根据被点击的按钮索引值iNOWx确定????????????

??

???})????????

??

???});?????????????????

??

??function?autoplay(){??????

??

timer=setInterval(function(){??????????????????????????????????????????????//打开定时器?????????????

??

??iNow++;?????????????????????????????????????????????????????????????????????????//让图片的索引值次序加1,这样就可以实现顺序轮播图片?????????????

??

??if(iNowshowNumber.length-1){??????????????????????????????????????//当到达最后一张图的时候,让iNow赋值为第一张图的索引值,轮播效果跳转到第一张图重新开始??????????????????

??

iNow=0;?}??????????????

??

showNumber.eq(iNow).trigger("click");??????????????????????????????????//模拟触发数字按钮的click??????????

??

},2000);??????????????????????????????????????????????????????????????????????//2000为轮播的时间??

??

}?????

??

?autoplay();?????

??

?slideShow.hover(?function(){clearInterval(timer);},autoplay);?????另外注意setInterval的用法比较关键。??

??

})??

??

/script??

主体代码:

[html]?view?plain?copy?print?

body??

????????div?class="slideShow"??

????????????!--图片布局开始--??

????????????ul??

????????????????lia?href="#"img?src="images/view/111.jpg"//a/li??

????????????????lia?href="#"img??src="images/view/112.jpg"?//a/li??

????????????????lia?href="#"img?src="images/view/113.jpg"?//a/li??

????????????????lia?href="#"img??src="images/view/114.jpg"?//a/li??

????????????/ul??

????????????!--图片布局结束--??

??????????????

????????????!--按钮布局开始--??

????????????div?class="showNav"??

????????????????span?class="active"1/span??

????????????????span2/span??

????????????????span3/span??

????????????????span4/span??

????????????/div??

????????????!--按钮布局结束--??

????????/div??

??

/body

如何编写jquery插件之轮播图

对于一位合格的前端开发人员来说,首页图片轮播可谓是必会的基本功。那么我们聊一聊如何用jquery封装自己的轮播插件。

首先必须要聊到的jquery为我们提供的两大扩展方法,$.fn和$.extend(),$.extend相当于为jQuery类(注意,JavaScript并没有类,我们只是以类来理解这种做法)添加静态方法,

$.fn其实就是jQuery.prototype,原型,对于新手比较难解的概念,可以简单的理解为,我更改了印章,印章印出来的每个印记都会受到印章的影响,可谓釜底抽薪,JavaScript原型链相对较为复杂,JavaScript的继承特性便是基于原型实现的,在编写大规模的JavaScript代码的时候,以面向对象的方式编写才会显得有价值,我们在此不赘述。

好了,我们有了上述的知识储备,我们开始编写轮播插件。

[html] view plain copy

!DOCTYPE html

html lang="en"

head

title/title

meta charset="UTF-8"

meta name="viewport" content="width=device-width, initial-scale=1"

link href="main.css" rel="stylesheet"

script src="./js/jquery-1.10.2.min.js"/script

script src="./js/jquery.slider.js"/script

script src="./js/main.js"/script

/head

body

div class="slider"

div class="slider_img"

a class="slider-active" href="#" style="background: url(./img/nav1.jpg) 50% no-repeat; background-size: cover; opacity: 1;"/a

a href="#" style="background: url(./img/nav2.jpg) 50% no-repeat; background-size: cover;"/a

a href="#" style="background: url(./img/nav3.jpg) 50% no-repeat; background-size: cover;"/a

a href="#" style="background: url(./img/nav4.jpg) 50% no-repeat; background-size: cover;"/a

a href="#" style="background: url(./img/nav5.jpg) 50% no-repeat; background-size: cover;"/a

/div

span id="left" class="arrow-icon"/span

span id="right" class="arrow-icon"/span

div class="slider_icon"

span class="active"/span

span/span

span/span

span/span

span/span

/div

/div

/body

/html

这是HTML代码的结构,需要一个向左,一个向右按钮和对应轮播图片数目的icon按钮,建议大家用a标签设置图片的容器,比较好操作。

CSS我就不贴了,之后我会将其上传。

最重要的是JavaScript代码:

[javascript] view plain copy

(function($) {

$.fn.slider = function(options) {

//this指向当前的选择器

var config = {

index: 0,

timer: null,

speed: 3000,

min: 0.3, //和css中的样式对应

max: 1

};

var opts = $.extend(config, options);

//核心方法,把当前index的图片和icon显示,把除此之外的图片和icon隐藏

var core = function() {

if (opts.index 4) {

opts.index = 0;

} else if (opts.index 0) {

opts.index = 4;

}

$(".slider_icon span").eq(opts.index).addClass("active").siblings("span").removeClass("active");

$(".slider_img a").eq(opts.index).css("display", "block").stop().animate({ "opacity": opts.max }, 1000).siblings("a").css({ "display": "none", "opacity": opts.min });

};

//左边

$(this).find("#left").bind("click", function() {

--opts.index;

core();

});

//右边

$(this).find("#right").bind("click", function() {

++opts.index;

core();

});

//每个icon分配事件

$(this).find(".slider_icon").on("click", "span", function() {

var index = $(this).index();

opts.index = index;

core();

});

//定时器

var start = function() {

opts.timer = setInterval(function() {

++opts.index;

core();

}, opts.speed);

}

$(this).hover(function() {

clearInterval(opts.timer);

}, function() {

start();

});

start();

}

}(jQuery));

1:core方法,其实图片轮播的本质就是把当前索引的图片显示,导航icon高亮,其余的隐藏,我做的是淡入淡出。

2:向左,向右,导航其实无非就是index的改变,jquery提供了一个index()方法,可以获得所有匹配元素中当前元素的索引,从0开始。

3:定时器,要实现图片的自动导航,无非就是每隔一定的时间,index+1。另外,当鼠标放入的时候,要清楚定时器,当输入移出的时候,再开启定时器。

(责任编辑:IT教学网)

更多

推荐Fireworks教程文章