jquery动画1.加载指示器


Posted in Javascript onAugust 24, 2012

该系列文章是我阅读《jQuery 1.4 Animation Techniques》后的总结,有兴趣的朋友可以去看原版书籍。

动画效果对于丰富网站的交互体验起到了不可或缺的作用,他可以让你的站点更酷,更吸引人。

什么时候使用动画:

1.当显示或隐藏页面、弹出框或内容区域的时候;

2.当一些内容从页面的一个地方移动到其他地方的时候;

3.当页面中的一些内容,应用户的操作而产生状态改变的时候;

4.当一些内容在几种状态间转变的时候;

5.引导用户去执行某些操作,或者引起他们对某些很重要信息注意的时候。

什么时候不应使用动画:

1.当某些操作是需要用户频繁重复操作的时候;

2.当设备无法充分显示动画效果的时候(也就是说该动画会占用计算机的很多资源,会影响到性能);

3.即时操作。

当然这些规定都不是绝对的,你需要根据你的实际情况来决定是否使用动画。下面是一些checklist(验证列表),只要满足下面几条选项,你的动画就是有价值的。

1.动画是否适合你的目标客户;

2.动画是否实用;

3.动画是否增强了用户体验;

4.动画是否以合适的速度运行。

下面我们开始我们的第一个例子,创建一个动画加载指示器,我直接把源码贴出来,上面有注释。

<!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> 
<title></title> 
<script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function () { 
//创建loader div对象 
//这里使用jQueryjQuery(html,[ownerDocument])方法,不懂得朋友去看下api 
var loader = $("<div></div>", { 
id: 'loader' 
}).css('display', 'none'); 
//创建显示条 
var bar = $('<span></span>').css('opacity', 0.2); 
//时间间隔对象 
var loadingInterval = null; 
//创建三个显示条,并添加到loader对象中 
for (var i = 0; i < 3; i++) { 
bar.clone()//使用clone的可以提高性能,不用每次都去重新创建对象,clone比创建来的快 
.addClass('bar-' + i).appendTo(loader); 
} 
//将loader添加到go按钮后面 
loader.insertAfter('#go'); 
function runLoader() { 
//获取三个显示条 
var firstBar = loader.children(':first'), 
secondBar = loader.children().eq(1), 
thirdBar = loader.children(':last'); 
//分别对三个显示条执行动画效果 
//总的效果就是依次让三个显示条,透明度变为1,再变为0.2 
firstBar.fadeTo('fast', 1, function () { 
firstBar.fadeTo('fast', 0.2, function () { 
secondBar.fadeTo('fast', 1, function () { 
secondBar.fadeTo('fast', 0.2, function () { 
thirdBar.fadeTo('fast', 1, function () { 
thirdBar.fadeTo('fast', 0.2) 
}); 
}); 
}); 
}); 
}); 
}; 
//对go按钮设置toggle事件 
$('#go').toggle(function () { 
//第一次点击的时候,显示loader,创建setInterval,每1200毫秒执行一次runLoader 
loader.show(); 
runLoader(); 
loadingInterval = setInterval(runLoader, 1200); 
}, function () { 
//再次点击的时候,隐藏loader,删除setInterval 
loader.hide(); 
clearInterval(loadingInterval); 
}); 
}); 
</script> 
<style type="text/css"> 
#loader 
{ 
margin: 10px 0 0 36px; 
} 
#loader span 
{ 
display: block; 
width: 6px; 
float: left; 
margin-right: 6px; 
border: 1px solid #336633; 
position: relative; 
background-color: #ccffcc; 
} 
#loader .bar-0 
{ 
height: 15px; 
bottom: -20px; 
} 
#loader .bar-1 
{ 
height: 25px; 
bottom: -10px; 
} 
#loader .bar-2 
{ 
height: 35px; 
margin-right: 0; 
} 
</style> 
</head> 
<body> 
<input id="go" type="button" value="Initiate the action" /> 
</body> 
</html>
Javascript 相关文章推荐
jqGrid增加时--判断开始日期与结束日期(实例解析)
Nov 08 Javascript
JS短路原理的应用示例 精简代码的途径
Dec 13 Javascript
jQuery窗口、文档、网页各种高度的精确理解
Jul 02 Javascript
Node.js操作mysql数据库增删改查
Mar 30 Javascript
简单实现的JQuery文本框水印插件
Jun 14 Javascript
微信小程序 解决请求服务器手机预览请求不到数据的方法
Jan 04 Javascript
jQuery实现获取隐藏div高度的方法示例
Feb 09 Javascript
vue2.0+vuex+localStorage代办事项应用实现详解
May 31 Javascript
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
Jan 07 Javascript
js中Generator函数的深入讲解
Apr 07 Javascript
jquery-ui 进度条功能示例【测试可用】
Jul 25 jQuery
如何编写一个 Webpack Loader的实现
Oct 18 Javascript
基于jquery的bankInput银行卡账号格式化
Aug 22 #Javascript
javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)
Aug 22 #Javascript
js选取多个或单个元素的实现代码(用class)
Aug 22 #Javascript
javascript动态加载三
Aug 22 #Javascript
javascript动态加载二
Aug 22 #Javascript
javascript动态加载实现方法一
Aug 22 #Javascript
原生js写的放大镜效果
Aug 22 #Javascript
You might like
PHP中exec与system用法区别分析
2014/09/22 PHP
php中header跳转使用include包含解决参数丢失问题
2015/05/08 PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
2015/09/20 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
php实现单笔转账到支付宝功能
2018/10/09 PHP
使用ucenter实现多站点同步登录的讲解
2019/03/21 PHP
基于jquery实现的鼠标滑过按钮改变背景图片
2011/07/15 Javascript
Node.js实现简单聊天服务器
2014/06/20 Javascript
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
jQuery简单实现列表隐藏和显示效果示例
2016/09/12 Javascript
利用Javascript实现简单的转盘抽奖
2017/02/13 Javascript
浅谈ES6新增的数组方法和对象
2017/08/08 Javascript
vue+element-ui实现表格编辑的三种实现方式
2018/10/31 Javascript
js中的reduce()函数讲解
2019/01/18 Javascript
jsonp格式前端发送和后台接受写法的代码详解
2019/11/07 Javascript
JavaScript中的几种继承方法示例
2020/12/06 Javascript
python生成随机验证码(中文验证码)示例
2014/04/03 Python
Python中datetime模块参考手册
2017/01/13 Python
python中的二维列表实例详解
2018/06/19 Python
基于python绘制科赫雪花
2018/06/22 Python
Python爬虫之网页图片抓取的方法
2018/07/16 Python
详解Python3定时器任务代码
2019/09/23 Python
使用pytorch实现可视化中间层的结果
2019/12/30 Python
Python pip install如何修改默认下载路径
2020/04/29 Python
使用matlab 判断两个矩阵是否相等的实例
2020/05/11 Python
Python3获取cookie常用三种方案
2020/10/05 Python
python time.strptime格式化实例详解
2021/02/03 Python
canvas实现俄罗斯方块的方法示例
2018/12/13 HTML / CSS
html5实现微信打飞机游戏
2014/03/27 HTML / CSS
档案信息化建设方案
2014/05/16 职场文书
党员年终个人总结
2015/02/14 职场文书
国际贸易实训总结
2015/08/03 职场文书
2016党员三严三实心得体会
2016/01/15 职场文书
驾驶员安全责任协议书
2016/03/22 职场文书
晶体管来复再生式二管收音机
2021/04/22 无线电
详解MySQL集群搭建
2021/05/26 MySQL