利用jquery写的左右轮播图特效


Posted in Javascript onFebruary 12, 2014

最近不是很忙,练习写了一个轮播图效果,虽然效果跟功能上貌似是没问题,但是我认为在许多东西上面都有待改进,在前端这个职位上我还有很远的路要走,当然要学的东西还有很多,这里仅仅对自己最近研究js的一个记录,我相信以后能写出更好的

将jquery框架的链接跟图片替换就可以看到效果了

源代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>轮播图</title> 
<style> 
*{margin:0; padding:0;} 
body{min-width:320px; font-size:12px;} 
h1{font-size:18px;} 
h2{font-size:14px} 
h4{font-size:12px;} 
p{ word-break:break-all; line-height:24px;} 
ul,ul li,ol,ol li{list-style:none;} 
a{text-decoration:none;} 
.clear{clear:both;} 
.clearfix:after{ display:block; clear:both; content:"."; visibility:hidden; height:0px;} #pic_carousel{position:relative;width:1000px;height:350px;overflow:hidden;margin: 0 auto;text-align:center;} 
.lunbo_pic{ position:absolute; left:0; top:0; overflow:hidden; text-align:center;} 
.lunbo_pic li{ float:left; overflow:hidden;} 
.lunbo_pic li a img{ width:1000px; display:block;vertical-align:bottom; border:none;} 
.lunbo_curso{ position:absolute; left:50%; width:125px; margin-left:-64px; bottom:0; } 
.lunbo_curso a{ background:url(../images/will_yuan.png) no-repeat center; float:left; color:#00F; width:25px; cursor:pointer;height:25px; line-height:25px; display:block; text-align:center;} 
.lunbo_curso .small_xz{ color:#F0F;} 
.arr{ position:absolute; top:50%; margin-top:-25px; width:30px; height:50px;} 
#arr_l{ left:0; background:#CCC;} 
#arr_r{ right:0; background:#CCC;} 
.tc_kuan{ position:absolute; top:50%; left:50%; margin-top:-25px; margin-left:-100px; width:200px; height:50px; line-height:50px; background:#CCC; color:#000;} 
</style> 
<script type="text/javascript" src="jquery/jquery-1.8.3.min.js"></script> 
</head> 
<body> 
<div id="pic_carousel"> 
<ul id="lunbo_pic" class="clearfix lunbo_pic"> 
<li><a href="#"><img src="images/insco_p1.jpg" /></a></li> 
<li><a href="#"><img src="images/insco_p2.jpg" /></a></li> 
<li><a href="#"><img src="images/insco_p3.jpg" /></a></li> 
<li><a href="#"><img src="images/insco_p1.jpg" /></a></li> 
<li><a href="#"><img src="images/insco_p2.jpg" /></a></li> 
</ul> 
<div id="lunbo_curso" class="lunbo_curso"> 
<a href="#" class="small_xz">1</a> 
<a href="#">2</a> 
<a href="#">3</a> 
<a href="#">4</a> 
<a href="#">5</a> 
</div> 
<span id="arr_l" class="arr"></span> 
<span id="arr_r" class="arr"></span> 
</div> 
<script> 
var b_width = 1000; // 大图的宽度 
var speed = 500; // 图片向左移动速度 
var s_time = 3000 //图片自动滚动速度 
var pic_li = $("#lunbo_pic").children("li"); 
$(document).ready(function(e) { 
var $ul_width= pic_li.width() * pic_li.length; //轮播图的宽度 
$("#lunbo_pic").width($ul_width); 
var small_width = $(".lunbo_curso>a").width() * $(".lunbo_curso>a").length; 
$(".lunbo_curso").width(small_width); 
$(".lunbo_curso").css("margin-left",-small_width/2); 
}); 

$(document).live("click",function(e){ 
$target = $(e.target); 
var id = $target.attr('id'); 
if($target.is("a") && $target.parent($("#lunbo_curso")) ){ 
$target.addClass("small_xz").siblings().removeClass('small_xz'); 
var mar_lf = parseInt($target.index() * b_width); 
$("#lunbo_pic").animate({ 
left : -mar_lf 
},speed); 
} 
if(id == "arr_l"){ 
prePage(); 
} 
if(id == "arr_r"){ 
nextPage(); 
} 
}); 
//上一个 
function prePage(){ 
if($(".small_xz").index() == 0){ 
$("#lunbo_pic").css("left",-4000); 
$("#lunbo_pic").animate({ 
"left": -parseInt(pic_li.length *b_width - b_width) 
},speed); 
$("#lunbo_curso>a").eq(pic_li.length - 1).addClass("small_xz").siblings().removeClass("small_xz"); 
$(".small_xz").index() == pic_li.length - 1; 
}else{ 
$("#lunbo_curso>a").eq($(".small_xz").index()-1).addClass("small_xz").siblings().removeClass("small_xz"); 
var mar_lf2 = parseInt($("#lunbo_pic").css("left")) + b_width; 
$("#lunbo_pic").animate({ 
"left": mar_lf2 
},speed); 
} 
} 
//下一个 
function nextPage(){ 
if($(".small_xz").index() == pic_li.length -1){ 
$("#lunbo_pic").css("left",0); 
/*$("#lunbo_pic").animate({ 
"left": 0 
},speed);*/ 
$("#lunbo_curso>a").eq(0).addClass("small_xz").siblings().removeClass("small_xz"); 
$(".small_xz").index() == 0; 
}else{ 
$("#lunbo_curso>a").eq($(".small_xz").index() + 1).addClass("small_xz").siblings().removeClass("small_xz"); 
var mar_lf2 = parseInt($("#lunbo_pic").css("left")) - b_width; 
$("#lunbo_pic").animate({ 
"left": mar_lf2 
},speed); 
} 
} 
function picRun(){ 
nextPage(); 
} 
intervalTime = setInterval(picRun,s_time); 
$("#pic_carousel").on("mouseover",function(){ 
clearInterval(intervalTime); 
}); 
$("#pic_carousel").on("mouseout",function(){ 
intervalTime = setInterval(picRun,s_time);; 
}); 
</script> 
</body> 
</html>
Javascript 相关文章推荐
jQuery asp.net 用json格式返回自定义对象
Apr 07 Javascript
五个jQuery图片画廊插件 推荐
May 12 Javascript
js数组Array sort方法使用深入分析
Feb 21 Javascript
关于Javascript 对象(object)的prototype
May 09 Javascript
JavaScript让Textarea支持tab按键的方法
Jun 26 Javascript
通过学习bootstrop导航条学会修改bootstrop颜色基调
Jun 11 Javascript
node跨域请求方法小结
Aug 25 Javascript
node的process以及child_process模块学习笔记
Mar 06 Javascript
vue 表单输入格式化中文输入法异常问题
May 30 Javascript
jQuery轻量级表单模型验证插件
Oct 15 jQuery
Vue多环境代理配置方法思路详解
Jun 21 Javascript
js+css3实现炫酷时钟
Aug 18 Javascript
jquery选择checked在ie8普通模式下的问题
Feb 12 #Javascript
控制input输入框中提示信息的显示和隐藏的方法
Feb 12 #Javascript
Javascript写入txt和读取txt文件示例
Feb 12 #Javascript
通过onmouseover选项卡实现img图片的变化
Feb 12 #Javascript
JavaScript中创建对象和继承示例解读
Feb 12 #Javascript
javascript实现文本域写入字符时限定字数
Feb 12 #Javascript
js 绑定键盘鼠标事件示例代码
Feb 12 #Javascript
You might like
php下关于中英数字混排的字符串分割问题
2010/04/06 PHP
PHP第三方登录―QQ登录实现方法
2017/02/06 PHP
才发现的超链接js导致网页中GIF动画停止的解决方法
2007/11/02 Javascript
JQuery入门——事件切换之hover()方法应用介绍
2013/02/05 Javascript
js判断输入是否为数字的具体实例
2013/08/03 Javascript
js函数返回多个返回值的示例代码
2013/11/05 Javascript
node.js中的buffer.write方法使用说明
2014/12/10 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
js+html5绘制图片到canvas的方法
2015/06/05 Javascript
jQuery操作基本控件方法实例分析
2015/12/31 Javascript
JS弹出窗口插件zDialog简单用法示例
2016/06/12 Javascript
Angular2中select用法之设置默认值与事件详解
2017/05/07 Javascript
Vue无限滑动周选择日期的组件的示例代码
2018/07/18 Javascript
jQuery实现的淡入淡出图片轮播效果示例
2018/08/29 jQuery
layer弹出层自适应高度,垂直水平居中的实现
2019/09/16 Javascript
vue新建项目并配置标准路由过程解析
2019/12/09 Javascript
24个ES6方法解决JS实际开发问题(小结)
2020/05/31 Javascript
Vue2.0 $set()的正确使用详解
2020/07/28 Javascript
用Python脚本来删除指定容量以上的文件的教程
2015/05/04 Python
Python自动调用IE打开某个网站的方法
2015/06/03 Python
打包发布Python模块的方法详解
2016/09/18 Python
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
django解决跨域请求的问题详解
2019/01/20 Python
python保存字典和读取字典的实例代码
2019/07/07 Python
flask框架配置mysql数据库操作详解
2019/11/29 Python
印度首选时尚目的地:Reliance Trends
2018/01/17 全球购物
俄罗斯三星品牌商店:Samsungstore
2020/04/05 全球购物
实习单位接收函模板
2014/01/10 职场文书
门诊手术室工作制度
2014/01/30 职场文书
厂长岗位职责
2014/02/19 职场文书
宣传保护环境的公益广告词
2014/03/13 职场文书
教师师德师风整改措施
2014/10/24 职场文书
优秀毕业生主要事迹材料
2015/11/04 职场文书
2015元旦感言
2015/12/09 职场文书
python 下载文件的几种方式分享
2021/04/07 Python
关于HTML编码导致的乱码问题
2021/09/04 HTML / CSS