JQuery插件Quicksand实现超炫的动画洗牌效果


Posted in Javascript onMay 03, 2015

Quicksand是一款基于jQuery的插件,能对页面上的元素进行重新排序及过滤,并且有非常不错的洗牌过渡动画效果,可以应用在很多项目中来增强用户体验。本文以实际项目应用来讲解Quicksand的使用。

XHTML

<div id="nav"> 
  <ul> 
   <li id="all" class="cur">所有功能模块</li> 
   <li id="app">应用程序</li> 
   <li id="sys">系统管理</li> 
  </ul> 
</div> 
<ul id="list" class="image-grid"> 
  <li id="id-1" class="app"> 
   <img src="images/birth.gif" width="80" height="60" alt="" /> 
   <strong>生日祝福</strong></li> 
  <li id="id-2" class="app"> 
   <img src="images/festival.gif" width="80" height="60" alt="" /> 
   <strong>节日祝福</strong></li> 
  <li id="id-3" class="sys"> 
   <img src="images/jifen.gif" width="80" height="60" alt="" /> 
   <strong>积分管理</strong></li> 
  ....N多li 
</ul>

XHTML结构由一个导航条和一个内容列表组成。在内容列表#list里,我给每个li都加了一个id属性,这个是为了方便Quicksand插件调用。

CSS

#nav{height:36px; margin:10px auto; border-bottom:1px solid #36c} 
#nav ul{list-style:none; padding-left:120px} 
#nav ul li{float:left; height:34px; line-height:34px; margin-left:6px; 
padding:0px 12px; border-left:1px solid #d3d3d3; border-right:1px solid #d3d3d3; 
 border-top:1px solid #d3d3d3; background:#f7f7f7; cursor:pointer} 
#nav ul li.cur{height:35px; background:#36c; color:#fff} 
.image-grid{zoom:1} 
.image-grid li{width: 82px; height:100px; margin: 20px 0 0 35px; float:left; 
 text-align: center; line-height:18px;color: #686f74;overflow:hidden;} 
.image-grid li img,.image-grid li strong{display:block;}

我给导航条#nav设置了选项卡风格,并设置选中状态#nav ul li.cur的样式。列表内容区也设置了每张图片的固定高度和宽度。

jQuery

首先,复制列表区的内容:

var $data=$("#list").clone();

然后,来实现选项卡风格,当点击导航时,给当前点击的项加上选中的样式,同时其他项移除选中状态的样式:

$("#nav ul li").click(function(){ 
  $(this).addClass("cur"); 
  $(this).siblings().removeClass("cur"); 
});

接着,继续在单击时间里,获取当前点击选项的ID,通过判断ID值,获取数据源$source,最后调用quicksand插件。完整的代码如下:

$("#nav ul li").click(function(){ 
  $(this).addClass("cur"); 
  $(this).siblings().removeClass("cur"); 
  var id = $(this).attr("id"); 
    if(id=="all"){ 
      var $source=$data.find("li"); 
    }else{ 
      var $source=$data.find("li[class="+id+"]"); 
    } 
    $("#list").quicksand($source,{ 
      duration: 1000, 
      attribute: 'id', 
      easing: 'swing' 
    }); 
  }); 
});

Quicksand插件提供了几个参数可配置:
duration:过渡动画的时间,以毫秒为单位。
attribute:关联数据的属性,本例设置为id。
easing:动画缓冲方式。

还有一个方法enhancement:function(c) {}可以自定义函数调用。

顺便提一下,IE6下没有过渡动画效果,IE7+,以及其他高级浏览器均测试通过。

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
Javascript面向对象之四 继承
Feb 08 Javascript
JQuery-tableDnD 拖拽的基本使用介绍
Jul 04 Javascript
使用jQuery在移动页面上添加按钮和给按钮添加图标
Dec 04 Javascript
jQuery实现点击水纹波动动画
Apr 10 Javascript
有关easyui-layout中的收缩层无法显示标题的解决办法
May 10 Javascript
又一枚精彩的弹幕效果jQuery实现
Jul 25 Javascript
JS控件bootstrap datepicker使用方法详解
Mar 25 Javascript
利用three.js画一个3D立体的正方体示例代码
Nov 19 Javascript
vue-router中的hash和history两种模式的区别
Jul 17 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
Sep 27 Javascript
原生js实现贪吃蛇游戏
Oct 26 Javascript
全面解析js中的原型,原型对象,原型链
Jan 25 Javascript
JQuery页面地址处理插件jqURL详解
May 03 #Javascript
jQuery的animate函数实现图文切换动画效果
May 03 #Javascript
php+ajax+jquery实现点击加载更多内容
May 03 #Javascript
jquery插件hiAlert实现网页对话框美化
May 03 #Javascript
javascript结合canvas实现图片旋转效果
May 03 #Javascript
浅谈javascript语法和定时函数
May 03 #Javascript
Jquery中的$.each获取各种返回类型数据的使用方法
May 03 #Javascript
You might like
php无限遍历目录示例
2014/02/21 PHP
PHP中date与gmdate的区别及默认时区设置
2014/05/12 PHP
php之Smarty模板使用方法示例详解
2014/07/08 PHP
使用纯php代码实现页面伪静态的方法
2015/07/25 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
laravel5.6中的外键约束示例
2019/10/23 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
2020/04/23 PHP
不错的JS中变量相关的细节分析
2007/08/13 Javascript
JavaScript初学者应注意的七个细节小结
2012/01/30 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
2013/10/28 Javascript
Visual Studio中js调试的方法图解
2014/06/30 Javascript
JavaScript表格常用操作方法汇总
2015/04/15 Javascript
深入浅析react native es6语法
2015/12/09 Javascript
JS加载iFrame出现空白问题的解决办法
2016/05/13 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
微信小程序 scroll-view隐藏滚动条详解
2017/01/16 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
2019/05/10 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
2019/09/05 Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
2019/10/21 Javascript
[00:44]TI7不朽珍藏III——军团指挥官不朽展示
2017/07/15 DOTA
python实现的防DDoS脚本
2011/02/08 Python
Python3实现发送QQ邮件功能(html)
2017/12/15 Python
python DataFrame 取差集实例
2019/01/30 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
2019/03/11 Python
Staples加拿大官方网站:办公用品一站式采购
2016/09/25 全球购物
非功能性需求都包括哪些方面
2013/10/29 面试题
女大学生自我鉴定
2013/12/09 职场文书
求职简历的自我评价
2014/01/31 职场文书
养成教育经验材料
2014/05/26 职场文书
大学生推广普通话演讲稿
2014/09/21 职场文书
高三毕业评语
2014/12/31 职场文书
街道党风廉政建设调研报告
2015/01/01 职场文书
推荐信范文大全
2015/03/27 职场文书
Java中常用解析工具jackson及fastjson的使用
2021/06/28 Java/Android
python库sklearn常用操作
2021/08/23 Python