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 相关文章推荐
JavaScript 新手24条实用建议[TUTS+]
Jun 21 Javascript
在UpdatePanel内jquery easyui效果失效的解决方法
Apr 11 Javascript
关于javascript function对象那些迷惑分析
Oct 24 Javascript
使用Jquery Aajx访问WCF服务(GET、POST、PUT、DELETE)
Mar 16 Javascript
jQuery javaScript捕获回车事件(示例代码)
Nov 07 Javascript
JS图片切换的具体方法(带缩略图版)
Nov 12 Javascript
JavaScript判断undefined类型的正确方法
Jun 30 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
May 03 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
Jul 18 Javascript
用iframe实现不刷新整个页面上传图片的实例
Nov 18 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
Apr 12 Javascript
Vue中keep-alive组件的深入理解
Aug 23 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下统计用户在线时间的一种尝试
2010/08/26 PHP
PHPThumb PHP 图片缩略图库
2012/03/11 PHP
php数组去重实例及分析
2013/11/26 PHP
php实现无限级分类查询(递归、非递归)
2016/03/10 PHP
php array_map使用自定义的函数处理数组中的每个值
2016/10/26 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
tp5(thinkPHP5框架)使用DB实现批量删除功能示例
2019/05/28 PHP
IE浏览器打印的页眉页脚设置解决方法
2009/12/08 Javascript
数组Array进行原型prototype扩展后带来的for in遍历问题
2010/02/07 Javascript
理解Javascript_11_constructor实现原理
2010/10/18 Javascript
javascript学习笔记(十六) 系统对话框(alert、confirm、prompt)
2012/06/20 Javascript
jQuery列表拖动排列具体实现
2013/11/04 Javascript
JavaScript获取DOM元素的11种方法总结
2015/04/25 Javascript
jQuery入门基础知识学习指南
2015/08/14 Javascript
JavaScript中实现Map的示例代码
2015/09/09 Javascript
vue语法之拼接字符串的示例代码
2017/10/25 Javascript
webpack 4.0.0-beta.0版本新特性介绍
2018/02/10 Javascript
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
2018/12/03 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
Python中使用MELIAE分析程序内存占用实例
2015/02/18 Python
对于Python的框架中一些会话程序的管理
2015/04/20 Python
自动化Nginx服务器的反向代理的配置方法
2015/06/28 Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
2017/01/20 Python
基于Python对数据shape的常见操作详解
2018/12/25 Python
Python 实现中值滤波、均值滤波的方法
2019/01/09 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
django xadmin 管理器常用显示设置方式
2020/03/11 Python
深入研究HTML5实现图片压缩上传功能
2016/03/25 HTML / CSS
将世界上最美丽的摄影作品转化为艺术作品:Photos.com
2017/11/28 全球购物
新闻专业个人求职信
2013/12/19 职场文书
大学生秋游活动方案
2014/02/17 职场文书
大班开学家长寄语
2014/04/04 职场文书
国际商务英语专业求职信
2014/07/08 职场文书
学校扫黄打非工作总结
2015/10/15 职场文书
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android