利用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 相关文章推荐
利用JS重写Cognos右键菜单的实现代码
Apr 11 Javascript
JS 树形递归实例代码
May 18 Javascript
jQuery控制元素显示、隐藏、切换、滑动的方法总结
Apr 16 Javascript
jQuery实现文本框邮箱输入自动补全效果
Nov 17 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
May 17 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
Jan 23 Javascript
JS简单实现获取元素的封装操作示例
Apr 07 Javascript
vue.js轮播图组件使用方法详解
Jul 03 Javascript
基于Angularjs-router动态改变Title值的问题
Aug 30 Javascript
详解Node.js读写中文内容文件操作
Oct 10 Javascript
微信小程序实现搜索指定景点周边美食、酒店
May 18 Javascript
vue webpack重写cookie路径的方法
Jul 10 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中FTP函数ftp_connect、ftp_login与ftp_chmod用法
2014/11/18 PHP
yii2中使用Active Record模式的方法
2016/01/09 PHP
点击弹出层外区域关闭弹出层jquery特效示例
2013/08/25 Javascript
jQuery隐藏和显示效果实现
2016/04/06 Javascript
js发送短信倒计时的简单实现方法
2016/09/08 Javascript
canvas 画布在主流浏览器中的尺寸限制详细介绍
2016/12/15 Javascript
微信小程序 详解Page中data数据操作和函数调用
2017/01/12 Javascript
addEventListener()与removeEventListener()解析
2017/04/20 Javascript
JQuery 获取Dom元素的实例讲解
2017/07/08 jQuery
Easyui Datagrid自定义按钮列(最后面的操作列)
2017/07/13 Javascript
Vue 中如何正确引入第三方模块的方法步骤
2019/05/05 Javascript
JS实现判断数组是否包含某个元素示例
2019/05/24 Javascript
多个vue子路由文件自动化合并的方法
2019/09/03 Javascript
JS轮播图的实现方法
2020/08/24 Javascript
javascript实现点击小图显示大图
2020/11/29 Javascript
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
2020/12/25 Vue.js
学习python (1)
2006/10/31 Python
Python实现设置windows桌面壁纸代码分享
2015/03/28 Python
Python深度优先算法生成迷宫
2018/01/22 Python
python直接获取API传递回来的参数方法
2018/12/17 Python
基于keras 模型、结构、权重保存的实现
2020/01/24 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
COS美国官网:知名服装品牌
2019/04/08 全球购物
大学生四年生活自我鉴定
2013/11/21 职场文书
个人生活学习自我评价范文
2013/11/26 职场文书
餐饮主管岗位职责
2013/12/10 职场文书
2014政务公开实施方案
2014/02/19 职场文书
《火烧云》教学反思
2014/04/12 职场文书
社区活动总结报告
2014/05/05 职场文书
毕业实习证明(4篇)
2014/10/28 职场文书
2014年教师德育工作总结
2014/11/10 职场文书
办公室岗位职责范本
2015/04/11 职场文书
2015年公司行政后勤工作总结
2015/05/20 职场文书
《揠苗助长》教学反思
2016/02/20 职场文书
MySQL面试题讲解之如何设置Hash索引
2021/11/01 MySQL
MySql数据库 查询时间序列间隔
2022/05/11 MySQL