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_13_执行模型详解
Oct 20 Javascript
Javascript继承(上)——对象构建介绍
Nov 08 Javascript
JS中操作JSON总结
Dec 06 Javascript
javascript实现简单的进度条
Jul 02 Javascript
js实现的后台左侧管理菜单代码
Sep 11 Javascript
js流动式效果显示当前系统时间
May 16 Javascript
微信小程序 地图(map)实例详解
Nov 16 Javascript
jQuery实现表格元素动态创建功能
Jan 09 Javascript
vue+node+webpack环境搭建教程
Nov 05 Javascript
Vue 实现双向绑定的四种方法
Mar 16 Javascript
three.js 如何制作魔方
Jul 31 Javascript
在react-antd中弹出层form内容传递给父组件的操作
Oct 24 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
第十三节 对象串行化 [13]
2006/10/09 PHP
PHP实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
2014/07/22 PHP
PHP使用http_build_query()构造URL字符串的方法
2016/04/02 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
thinkPHP框架中layer.js的封装与使用方法示例
2019/01/18 PHP
[原创]站长必须要知道的javascript广告代码
2007/05/30 Javascript
Add Formatted Data to a Spreadsheet
2007/06/12 Javascript
WordPress JQuery处理沙发头像
2009/06/22 Javascript
JQuery 无废话系列教程(一) jquery入门 [推荐]
2009/06/23 Javascript
基于jquery实现的表格分页实现代码
2011/06/21 Javascript
Jquery中显示隐藏的实现代码分析
2011/07/26 Javascript
js 如何实现对数据库的增删改查
2012/11/23 Javascript
关于js数组去重的问题小结
2014/01/24 Javascript
关于JavaScript中name的意义冲突示例介绍
2014/05/29 Javascript
javascript实现起伏的水波背景效果
2016/05/16 Javascript
node thread.sleep实现示例
2018/06/20 Javascript
如何使用pm2快速将项目部署到远程服务器
2019/03/12 Javascript
js刷新页面location.reload()用法详解
2019/12/09 Javascript
js实现九宫格抽奖
2020/03/19 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
2020/05/16 Javascript
Element Steps步骤条的使用方法
2020/07/26 Javascript
vue操作dom元素的3种方法示例
2020/09/20 Javascript
[01:01:41]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第二场 1月31日
2021/03/11 DOTA
python批量修改图片大小的方法
2018/07/24 Python
Python常见内置高效率函数用法示例
2018/07/31 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
2019/01/15 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
运行tensorflow python程序,限制对GPU和CPU的占用操作
2020/02/06 Python
Python tkinter实现简单加法计算器代码实例
2020/05/13 Python
StubHub墨西哥:购买和出售您的门票
2016/09/17 全球购物
Giglio美国站:意大利奢侈品购物网
2018/02/10 全球购物
党员领导干部廉洁从政承诺书
2014/03/27 职场文书
十佳党员事迹材料
2014/08/28 职场文书
整改报告怎么写
2014/11/06 职场文书
高二化学教学反思
2016/02/22 职场文书