jquery实现每个数字上都带进度条的幻灯片


Posted in Javascript onFebruary 20, 2013

记得亚马逊没改版之前,首页的幻灯片我很喜欢,每个数字上面都带有进度条。
闲的无聊,自己实现了一个。用的jquery。
主要用到animate()方法,
因为有一个进度条的播放过程。
不支持ie6,当然,改改还是可以的。
演示
下载
先看下效果图
jquery实现每个数字上都带进度条的幻灯片 
看代码吧:

<!DOCTYPE html> 
<html> 
<head> 
<title>slide play with loadbar--by loethen</title> 
<meta charset='utf-8'> 
<style> 
*{padding: 0;margin:0;} 
ul li{list-style: none;} 
.slideplay ,.slideshow{ 
position: relative; 
} 
.slideshow li{ 
position: absolute; 
left: 0; 
top: 0; 
display: none; 
} 
.loadbar{ 
position: absolute; 
bottom: 60px; 
left: 250px; 
z-index: 9; 
} 
.loadbar li{ 
width: 40px; 
height: 20px; 
float: left; 
position: relative; 
margin-right: 5px; 
border-radius: 2px; 
border: 1px solid #e5f9ff; 
} 
.loadbar span{ 
position: absolute; 
left: 0; 
top: 0; 
height: 20px; 
width: 40px; 
text-align: center; 
z-index: 12; 
cursor: pointer; 
color: #fff; 
border-radius: 2px; 
} 
.loadbar em{ 
position: absolute; 
left: 0; 
top: 0; 
height: 20px; 
background: #31d81a; 
z-index: 10; 
border-radius: 2px; 
opacity: 0.7 
} 
.zindex{ 
z-index: 1; 
} 
</style> 
<script src='js/jquery.min.js'></script> 
</head> 
<body> 
<div id="slideplay" class='slideplay'> 
<ul class='slideshow'> 
<li><img src="images/a.jpg" alt=""></li> 
<li><img src="images/b.jpg" alt=""></li> 
<li><img src="images/c.jpg" alt=""></li> 
<li><img src="images/d.jpg" alt=""></li> 
<li><img src="images/e.jpg" alt=""></li> 
</ul> 
<ul class='loadbar clearfix'> 
<li> 
<span>1</span> 
<em></em> 
</li> 
<li> 
<span>2</span> 
<em></em> 
</li> 
<li> 
<span>3</span> 
<em></em> 
</li> 
<li> 
<span>4</span> 
<em></em> 
</li> 
<li> 
<span>5</span> 
<em></em> 
</li> 
</ul> 
</div> 
<script type='text/javascript'> 
$(function(){ 
var slide = $('.slideplay'), 
ulShow = $('.slideshow'), 
sLi = ulShow.find('li'), 
bLi = $('.loadbar li'), 
len = sLi.length; 
var option ={ 
speed:3000, 
barWidth:40 
}, 
barSpeed = option.speed-100; 
var w = sLi.first().width(), 
h = sLi.first().height(); 
var flag = 0, 
timer = null; 
ulShow.css({ 
width:w+'px', 
height:h+'px' 
}); 
slide.css({ 
width:w+'px', 
height:h+'px' 
}); 
init(); 
function init(){ 
sLi.eq(flag).addClass('zindex').show(); 
bLi.eq(flag).find('em').animate({width:option.barWidth},barSpeed); 
timer = setTimeout(function(){ 
next(); 
},option.speed); 
ulShow.on('mouseover',doStop); 
ulShow.on('mouseleave',doAuto); 
bLi.on('mouseover',handPattern); 
} 
function handPattern(){ 
doStop(); 
flag = $(this).index(); 
imgMove(); 
bLi.find('em').css('width',0); 
bLi.eq(flag).find('em').width(option.barWidth); 
} 
function doStop(){ 
timer && clearTimeout(timer); 
bLi.eq(flag).find('em').stop(); 
} 
function doAuto(){ 
var em = bLi.eq(flag).find('em'), 
w = em.width(), 
leftW = option.barWidth - w , 
sec = (leftW * barSpeed)/option.barWidth; 
em.animate({width:option.barWidth},sec,function(){ 
if(flag==len-1){ 
em.width(0); 
next(); 
}else{ 
next(); 
} 
}); 
} 
function next(){ 
flag++; 
flag==len && (flag=0); 
doMove(); 
} 
function doMove(){ 
imgMove(); 
loadbarMove(); 
} 
function imgMove(){ 
sLi.eq(flag).addClass('zindex').fadeIn('slow') 
.siblings().removeClass('zindex').fadeOut('slow'); 
} 
function loadbarMove(){ 
bLi.eq(flag).find('em'). 
animate({width:option.barWidth},barSpeed,function(){ 
if(flag==len-1){ 
bLi.find('em').width(0); 
next(); 
}else{ 
next(); 
} 
}); 
} 
}) 
</script> 
</body> 
</html>
Javascript 相关文章推荐
jquery 常用操作整理 基础入门篇
Oct 14 Javascript
Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中
Oct 29 Javascript
使用jQuery异步加载 JavaScript脚本解决方案
Apr 20 Javascript
使用GruntJS构建Web程序之构建篇
Jun 04 Javascript
如何编写高质量JS代码(续)
Feb 25 Javascript
JavaScript中的lastIndexOf()方法使用详解
Jun 06 Javascript
iframe中子父类窗口调用JS的方法及注意事项
Aug 25 Javascript
原生js实现autocomplete插件
Apr 14 Javascript
jQuery利用sort对DOM元素进行排序操作
Nov 07 Javascript
JavaScript无操作后屏保功能的实现方法
Jul 04 Javascript
简谈创建React Component的几种方式
Jun 15 Javascript
Vue 实现简易多行滚动&quot;弹幕&quot;效果
Jan 02 Javascript
javascript通过class来获取元素实现代码
Feb 20 #Javascript
javascript自适应宽度的瀑布流实现思路
Feb 20 #Javascript
Raphael带文本标签可拖动的图形实现代码
Feb 20 #Javascript
IE关闭时判断及AJAX注销案例学习
Feb 18 #Javascript
JS刷新框架外页面七种实现代码
Feb 18 #Javascript
js获取html参数及向swf传递参数应用介绍
Feb 18 #Javascript
用js写了一个类似php的print_r输出换行功能
Feb 18 #Javascript
You might like
先进的自动咖啡技术,真的可以取代咖啡师吗?
2021/03/06 冲泡冲煮
php数组(array)输出的三种形式详解
2013/06/05 PHP
php中的boolean(布尔)类型详解
2013/10/28 PHP
php获取mysql字段名称和其它信息的例子
2014/04/14 PHP
php通过排列组合实现1到9数字相加都等于20的方法
2015/08/03 PHP
PHP SESSION机制的理解与实例
2019/03/22 PHP
Smarty模板类内部原理实例分析
2019/07/03 PHP
一个js实现的所谓的滑动门
2007/05/23 Javascript
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
js函数返回多个返回值的示例代码
2013/11/05 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
JavaScript中对象的不同创建方法
2016/08/12 Javascript
深入理解javascript中的 “this”
2017/01/17 Javascript
jquery滚动条插件slimScroll使用方法
2017/02/09 Javascript
详解vue-cli下ESlint 配置说明
2018/09/03 Javascript
react实现同页面三级跳转路由布局
2019/09/26 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
2020/03/13 Javascript
[01:14:05]《加油DOTA》第四期
2014/08/25 DOTA
[00:32]2018DOTA2亚洲邀请赛OpTic出场
2018/04/03 DOTA
Python入门篇之文件
2014/10/20 Python
Python中列表和元组的相关语句和方法讲解
2015/08/20 Python
Python三级目录展示的实现方法
2016/09/28 Python
Python学生信息管理系统修改版
2018/03/13 Python
python实现感知机线性分类模型示例代码
2019/06/02 Python
Flask框架学习笔记之表单基础介绍与表单提交方式
2019/08/12 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
2020/12/07 Python
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
How to spawning asynchronous work in J2EE
2016/08/29 面试题
擅自离岗检讨书
2014/02/11 职场文书
老公保证书范文
2014/04/29 职场文书
个人剖析材料及整改措施
2014/10/07 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
2015年新农合工作总结
2015/03/30 职场文书
《百分数的认识》教学反思
2016/02/19 职场文书
导游词之河北白洋淀
2020/01/15 职场文书
python 爬取天气网卫星图片
2021/06/07 Python