利用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 相关文章推荐
浅谈JavaScript之事件绑定
Jul 08 Javascript
jquery交替变换颜色的三种方法 实例代码
Nov 19 Javascript
Script标签与访问HTML页面详解
Jan 10 Javascript
JavaScript数据结构和算法之二叉树详解
Feb 11 Javascript
jQuery带进度条全屏图片轮播特效代码分享
Jun 28 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
Jul 10 Javascript
jstl中判断list中是否包含某个值的简单方法
Oct 14 Javascript
如何防止INPUT按回车自动提交表单FORM
Dec 06 Javascript
vue2.x 父组件监听子组件事件并传回信息的方法
Jul 17 Javascript
解决layui上传文件提示上传异常,实际文件已经上传成功的问题
Aug 19 Javascript
vue 动态表单开发方法案例详解
Dec 02 Javascript
javascript将16进制的字符串转换为10进制整数hex
Mar 05 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的CMS中展示文章类实例分析
2015/06/18 PHP
php使用CutyCapt实现网页截图保存的方法
2016/10/03 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
php中关于换行的实例写法
2019/09/26 PHP
tp5 实现列表数据根据状态排序
2019/10/18 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
PHP底层运行机制与工作原理详解
2020/07/31 PHP
Yii中特殊行为ActionFilter的使用方法示例
2020/10/18 PHP
Jquery 一次处理多个ajax请求的代码
2011/09/02 Javascript
JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)
2012/02/27 Javascript
JS实现可改变列宽的table实例
2013/07/02 Javascript
一个简单的Node.js异步操作管理器分享
2014/04/29 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
nodejs修复ipa处理过的png图片
2016/02/17 NodeJs
解决jquery appaend元素中id绑定事件失效的问题
2017/09/12 jQuery
JavaScript实现图片本地预览功能【不用上传至服务器】
2017/09/20 Javascript
jQuery图片查看插件Magnify开发详解
2017/12/25 jQuery
详解 vue better-scroll滚动插件排坑
2018/02/08 Javascript
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
2018/09/14 Javascript
Node.js实现一个HTTP服务器的方法示例
2019/05/13 Javascript
vue 需求 data中的数据之间的调用操作
2020/08/05 Javascript
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
python数据处理实战(必看篇)
2017/06/11 Python
python时间日期函数与利用pandas进行时间序列处理详解
2018/03/13 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
Python批量将图片灰度化的实现代码
2020/04/11 Python
python爬虫工具例举说明
2020/11/30 Python
美国玛丽莎收藏奢华时尚商店:Marissa Collections
2016/11/21 全球购物
Lookfantastic俄罗斯:欧洲在线化妆品零售商
2019/08/06 全球购物
外贸销售员求职的自我评价
2013/11/23 职场文书
银行求职信怎么写
2014/05/26 职场文书
党员学习新党章思想汇报
2014/10/25 职场文书
先进班组材料范文
2014/12/25 职场文书
2016年班主任培训心得体会
2016/01/07 职场文书
安全生产培训心得体会
2016/01/18 职场文书