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实现的内存数据库LokiJS介绍和入门实例
Nov 17 Javascript
JavaScript解析json格式数据简单示例
Dec 09 Javascript
Javascript实现飞动广告效果的方法
May 25 Javascript
jQuery实现html表格动态添加新行的方法
May 28 Javascript
全面解析bootstrap格子布局
May 22 Javascript
一个简单不报错的summernote 图片上传案例
Jul 11 Javascript
jQuery插件echarts实现的单折线图效果示例【附demo源码下载】
Mar 04 Javascript
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
Sep 12 Javascript
vue实现树形菜单效果
Mar 19 Javascript
微信小程序下拉刷新PullDownRefresh的使用方法
Nov 29 Javascript
微信小程序开发(二):页面跳转并传参操作示例
Jun 01 Javascript
Vue——前端生成二维码的示例
Dec 19 Vue.js
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 数字左侧自动补0
2008/03/31 PHP
php递归实现无限分类生成下拉列表的函数
2010/08/08 PHP
浅析echo(),print(),print_r(),return之间的区别
2013/11/27 PHP
PHP连接SQLServer2005的方法
2015/01/27 PHP
typecho插件编写教程(一):Hello World
2015/05/28 PHP
php错误日志简单配置方法
2016/07/11 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
2017/07/03 PHP
提高代码性能技巧谈—以创建千行表格为例
2006/07/01 Javascript
一些易混淆且不常用的属性,希望有用
2007/01/29 Javascript
js自定义事件代码说明
2011/01/31 Javascript
JS中Iframe之间传值及子页面与父页面应用
2013/03/11 Javascript
jQuery 获取遍历获取table中每一个tr中的第一个td的方法
2016/10/05 Javascript
Vuejs监听vuex中值的变化的方法示例
2018/12/02 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
Node.js爬虫如何获取天气和每日问候详解
2019/08/26 Javascript
优雅的使用javascript递归画一棵结构树示例代码
2019/09/22 Javascript
jQuery 筛选器简单操作示例
2019/10/02 jQuery
nodejs实现UDP组播示例方法
2019/11/04 NodeJs
Angular value与ngValue区别详解
2019/11/27 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
2020/06/02 Javascript
微信小程序弹窗禁止页面滚动的实现代码
2020/12/30 Javascript
python实现数通设备端口监控示例
2014/04/02 Python
Django Highcharts制作图表
2016/08/27 Python
Python实现求解括号匹配问题的方法
2018/04/17 Python
使用python3+xlrd解析Excel的实例
2018/05/04 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
Python如何使用vars返回对象的属性列表
2020/10/17 Python
jupyter notebook 写代码自动补全的实现
2020/11/02 Python
Sentry错误日志监控使用方法解析
2020/11/12 Python
SheIn沙特阿拉伯:女装在线
2020/03/23 全球购物
计算机系本科生求职信
2014/05/31 职场文书
办理房产证委托书
2014/09/18 职场文书
教师节寄语2015
2015/03/23 职场文书
致创业的您:这类人不适合餐饮创业
2019/08/19 职场文书
插件导致ECharts被全量引入的坑示例解析
2022/09/23 Javascript