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代码必备[js多浏览器兼容写法]
Oct 29 Javascript
Javascript 强制类型转换函数
May 17 Javascript
jQuery 开天辟地入门篇一
Dec 09 Javascript
js禁止小键盘输入数字功能代码
Aug 01 Javascript
jQuery javaScript捕获回车事件(示例代码)
Nov 07 Javascript
JS常用加密编码与算法实例总结
Dec 22 Javascript
Three.js的使用及绘制基础3D图形详解
Apr 27 Javascript
Vue 2.0入门基础知识之内部指令详解
Oct 15 Javascript
Array数组对象中的forEach、map、filter及reduce详析
Aug 02 Javascript
使用post方法实现json往返传输数据的方法
Mar 30 Javascript
JS实现横向轮播图(中级版)
Jan 18 Javascript
JavaScript使用setTimeout实现倒计时效果
Feb 19 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实现购物车功能(下)
2016/01/05 PHP
javascript 实现父窗口引用弹出窗口的值的脚本
2007/08/07 Javascript
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
javascript面向对象的方式实现的弹出层效果代码
2010/01/28 Javascript
JavaScript replace(rgExp,fn)正则替换的用法
2010/03/04 Javascript
点击标签切换和自动切换DIV选项卡
2014/08/10 Javascript
jQuery实现自动调整字体大小的方法
2015/06/15 Javascript
使用vue.js开发时一些注意事项
2016/04/27 Javascript
最丑的时钟效果!js canvas时钟制作方法
2016/08/15 Javascript
JS实现点击网页判断是否安装app并打开否则跳转app store
2016/11/18 Javascript
JS作用域深度解析
2016/12/29 Javascript
原生JavaScript来实现对dom元素class的操作方法(推荐)
2017/08/16 Javascript
JavaScript基础教程之如何实现一个简单的promise
2018/09/11 Javascript
jQuery中each和js中forEach的区别分析
2019/02/27 jQuery
微信小程序登录对接Django后端实现JWT方式验证登录详解
2019/07/29 Javascript
JavaScript实现单图片上传并预览功能
2019/09/30 Javascript
浅谈vue 锚点指令v-anchor的使用
2019/11/13 Javascript
Python3基础之条件与循环控制实例解析
2014/08/13 Python
Python利用IPython提高开发效率
2016/08/10 Python
python smtplib发送带附件邮件小程序
2018/05/22 Python
python实现傅里叶级数展开的实现
2018/07/21 Python
使用opencv中匹配点对的坐标提取方式
2020/06/04 Python
python利用xlsxwriter模块 操作 Excel
2020/10/14 Python
Python实现随机爬山算法
2021/01/29 Python
css3 中实现炫酷的loading效果
2019/04/26 HTML / CSS
如何在Canvas中添加事件的方法示例
2019/05/21 HTML / CSS
阿提哈德航空官方网站:Etihad Airways
2017/01/06 全球购物
7 For All Mankind官网:美国加州洛杉矶的高级牛仔服装品牌
2018/12/20 全球购物
自荐信的禁忌和要点
2013/10/15 职场文书
保安拾金不昧表扬信
2014/01/15 职场文书
设备管理实施方案
2014/05/31 职场文书
生日庆典策划方案
2014/06/02 职场文书
体现团队精神的口号
2014/06/06 职场文书
辩论赛主持人开场白
2015/05/29 职场文书
音乐剧猫观后感
2015/06/04 职场文书
2016继续教育培训学习心得体会
2016/01/19 职场文书