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代码
Mar 07 Javascript
prototype与jquery下Ajax实现的差别
Sep 13 Javascript
日期处理的js库(迷你版)--自建js库总结
Nov 21 Javascript
js replace替换所有匹配的字符串
Feb 13 Javascript
jQuery 遍历函数详解
Jul 05 Javascript
JavaScript学习笔记之数组求和方法
Mar 23 Javascript
require.js配合插件text.js实现最简单的单页应用程序
Jul 12 Javascript
JS实现页面载入时随机显示图片效果
Sep 07 Javascript
js实现1,2,3,5数字按照概率生成
Sep 12 Javascript
JS实现去除数组中重复json的方法示例
Dec 21 Javascript
Vue框架TypeScript装饰器使用指南小结
Feb 18 Javascript
深入理解JavaScript 箭头函数
May 30 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版)
2006/10/09 PHP
请离开include_once和require_once
2013/07/18 PHP
php使用GeoIP库实例
2014/06/27 PHP
php使用CutyCapt实现网页截图保存的方法
2016/10/03 PHP
html下载本地
2006/06/19 Javascript
使用JS操作页面表格,元素的一些技巧
2007/02/02 Javascript
jquery获取下拉列表的值为null的解决方法
2011/03/18 Javascript
javascript实现促销倒计时+fixed固定在底部
2013/09/18 Javascript
基于原生js淡入淡出函数封装(兼容IE)
2016/10/20 Javascript
Spring Boot+AngularJS+BootStrap实现进度条示例代码
2017/03/02 Javascript
通过命令行创建vue项目的方法
2017/07/20 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
如何让node运行es6模块文件及其原理详解
2018/12/11 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
2019/04/08 Javascript
vue点击按钮动态创建与删除组件功能
2019/12/29 Javascript
vue如何实现动态加载脚本
2020/02/05 Javascript
js实现碰撞检测
2021/01/29 Javascript
[48:41]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
Python 初始化多维数组代码
2008/09/06 Python
python调用cmd复制文件代码分享
2013/12/27 Python
利用python求相邻数的方法示例
2017/08/18 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
2019/12/26 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
Kipling凯浦林美国官网:世界著名时尚休闲包袋品牌
2016/08/24 全球购物
椰子猫砂:CatSpot
2018/08/27 全球购物
美国最大的户外装备和服装购物网站:Backcountry
2019/10/15 全球购物
英国发展最快的在线超市之一:Click Marketplace
2021/02/15 全球购物
客服主管岗位职责
2013/12/13 职场文书
数控机床专业自荐信
2014/05/19 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
个人授权委托书格式
2014/08/30 职场文书
群众路线个人自我剖析材料
2014/10/07 职场文书
社区环境卫生倡议书
2015/04/29 职场文书
Netty客户端接入流程NioSocketChannel创建解析
2022/03/25 Java/Android
JavaScript实现音乐播放器
2022/08/14 Javascript