利用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 版本的文本输入框检查器Input Check
Jul 09 Javascript
基于jquery中children()与find()的区别介绍
Apr 26 Javascript
javascript伸缩型菜单实现代码
Nov 16 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
Nov 19 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
Apr 28 Javascript
JavaScript中使用参数个数实现重载功能
Sep 01 Javascript
JS实现带导航城市列表以及输入搜索功能
Jan 04 Javascript
JS 数组随机洗牌的实例代码
Sep 12 Javascript
ajax与jsonp的区别及用法
Oct 16 Javascript
js实现图片上传即时显示效果
Sep 30 Javascript
javascript实现前端分页效果
Jun 24 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
Aug 12 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
Re:从零开始的异世界生活 第2季 开播啦
2020/07/24 日漫
php学习笔记(三)操作符与控制结构
2011/08/06 PHP
PHP垃圾回收机制引用计数器概念分析
2013/06/24 PHP
phpMyAdmin安装并配置允许空密码登录
2015/07/04 PHP
js Map List 遍历使用示例
2013/07/10 Javascript
jQuery实现点击按钮弹出可关闭层的浮动层插件
2015/09/19 Javascript
jQuery实现的网页左侧在线客服效果代码
2015/10/23 Javascript
JavaScript encodeURI 和encodeURIComponent
2015/12/04 Javascript
AngularJS模块学习之Anchor Scroll
2016/01/19 Javascript
微信小程序 在Chrome浏览器上运行以及WebStorm的使用
2016/09/27 Javascript
Bootstrap在线电子商务网站实战项目5
2016/10/14 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
2016/12/22 Javascript
关于javascript获取内联样式与嵌入式样式的实例
2017/06/01 Javascript
Vue.directive使用注意(小结)
2018/08/31 Javascript
js中值引用和地址引用实例分析
2019/06/21 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
2019/10/11 Javascript
Python编写百度贴吧的简单爬虫
2015/04/02 Python
Python类定义和类继承详解
2015/05/08 Python
在Python中操作时间之tzset()方法的使用教程
2015/05/22 Python
Python WXPY实现微信监控报警功能的代码
2017/10/20 Python
Python使用base64模块进行二进制数据编码详解
2018/01/11 Python
python实现网站微信登录的示例代码
2019/09/18 Python
Python实现自动访问网页的例子
2020/02/21 Python
使用python处理题库表格并转化为word形式的实现
2020/04/14 Python
CSS3 实现雷达扫描图的示例代码
2020/09/21 HTML / CSS
英国香水店:The Perfume Shop
2017/03/27 全球购物
毕业生自荐信的主要内容
2013/10/29 职场文书
岗位明星事迹材料
2014/05/18 职场文书
计划生育标语
2014/06/23 职场文书
员工趣味活动方案
2014/08/27 职场文书
学习教师敬业奉献模范事迹材料思想汇报
2014/09/19 职场文书
php+laravel 扫码二维码签到功能
2021/05/15 PHP
python缺失值的解决方法总结
2021/06/09 Python
Python编写nmap扫描工具
2021/07/21 Python
Python+Selenium实现读取网易邮箱验证码
2022/03/13 Python
Python面试不修改数组找出重复的数字
2022/05/20 Python