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 相关文章推荐
js操纵跨frame的三级联动select下拉选项实例介绍
May 19 Javascript
全面理解面向对象的 JavaScript(来自ibm)
Nov 10 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
Oct 08 Javascript
Node.js学习入门
Jan 03 Javascript
JavaScript中三个等号和两个等号你了解多少
Jul 04 Javascript
js is_valid_filename验证文件名的函数
Jul 19 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
Dec 01 Javascript
详解plotly.js 绘图库入门使用教程
Feb 23 Javascript
es6数值的扩展方法
Mar 11 Javascript
layui下拉框获取下拉值(select)的例子
Sep 10 Javascript
一道JS算法面试题——冒泡、选择排序
Apr 21 Javascript
微信小程序 WeUI扩展组件库的入门教程
Apr 21 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+MySQL5.0中文乱码解决方法
2006/11/20 PHP
PHP登录(ajax提交数据和后台校验)实例分享
2016/12/29 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
JS BASE64编码 window.atob(), window.btoa()
2021/03/09 Javascript
为Yahoo! UI Extensions Grid增加内置的可编辑器
2007/03/10 Javascript
jquery获取input表单值的代码
2010/04/19 Javascript
javascript 学习笔记(onchange等)
2010/11/14 Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
2013/07/09 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
innerHTML在IE中报错解决方案
2014/12/15 Javascript
jQuery实现本地预览上传图片功能
2016/01/08 Javascript
纯js代码制作的网页时钟特效【附实例】
2016/03/30 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
如何使用jquery实现文字上下滚动效果
2016/10/12 Javascript
JavaScript 函数的定义-调用、注意事项
2017/04/16 Javascript
基于layui数据表格以及传数据的方式
2018/08/19 Javascript
Vue加载json文件的方法简单示例
2019/01/28 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
2019/02/13 Javascript
详解基于vue-cli3快速发布一个fullpage组件
2019/03/08 Javascript
js时间转换毫秒的实例代码
2019/08/21 Javascript
小程序采集录音并上传到后台
2019/11/22 Javascript
[01:24:09]Ti4 冒泡赛第二轮DK vs C9 1
2014/07/14 DOTA
[01:03]PWL开团时刻DAY6——别打我
2020/11/05 DOTA
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
html5 viewport使用方法示例详解
2013/12/02 HTML / CSS
Zavvi荷兰:英国大型音像制品和图书游戏零售商
2018/03/22 全球购物
LN-CC美国:伦敦时尚生活的缩影
2019/02/19 全球购物
zooplus意大利:在线宠物商店
2019/08/07 全球购物
介绍一下JMS编程步骤
2015/09/22 面试题
政协调研汇报材料
2014/08/15 职场文书
爱祖国爱家乡演讲稿
2014/09/02 职场文书
2014年污水处理厂工作总结
2014/12/19 职场文书
工作收入证明模板
2015/06/12 职场文书
python 标准库原理与用法详解之os.path篇
2021/10/24 Python