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 调整select 位置的函数
Feb 21 Javascript
jquery异步调用页面后台方法&amp;#8207;(asp.net)
Mar 01 Javascript
Javascript排序算法之计数排序的实例
Apr 05 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
Jun 26 Javascript
基于Bootstrap+jQuery.validate实现Form表单验证
Dec 16 Javascript
JavaScript iframe数据共享接口实现方法
Jan 06 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
Apr 07 Javascript
javascript 用函数实现继承详解
May 28 Javascript
纯JavaScript手写图片轮播代码
Oct 20 Javascript
解决vue中监听input只能输入数字及英文或者其他情况的问题
Aug 30 Javascript
layui使用templet格式化表格数据的方法
Sep 16 Javascript
详解Howler.js Web音频播放终极解决方案
Aug 23 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
留言板翻页的实现详解
2006/10/09 PHP
php若干单维数组遍历方法的比较
2011/09/20 PHP
PHP实现批量上传单个文件
2015/12/29 PHP
php进程间通讯实例分析
2016/07/11 PHP
PHP编程实现脚本异步执行的方法
2017/08/09 PHP
jquery+css实现的红色线条横向二级菜单效果
2015/08/22 Javascript
JS实现的自定义右键菜单实例二则
2015/09/01 Javascript
基于jQuery实现复选框是否选中进行答题提示
2015/12/10 Javascript
详解javascript实现瀑布流列式布局
2016/01/29 Javascript
30分钟快速掌握Bootstrap框架
2016/05/24 Javascript
解决vue build打包之后首页白屏的问题
2018/03/06 Javascript
利用React Router4实现的服务端直出渲染(SSR)
2019/01/07 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
Angular封装搜索框组件操作示例
2019/04/25 Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
2020/11/04 Javascript
element el-table表格的二次封装实现(附表格高度自适应)
2021/01/19 Javascript
跟老齐学Python之编写类之三子类
2014/10/11 Python
Python3中常用的处理时间和实现定时任务的方法的介绍
2015/04/07 Python
python过滤字符串中不属于指定集合中字符的类实例
2015/06/30 Python
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
Django框架模板介绍
2019/01/15 Python
使用Python向DataFrame中指定位置添加一列或多列的方法
2019/01/29 Python
Python 使用type来定义类的实现
2019/11/19 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
2020/02/14 Python
python中Ansible模块的Playbook的具体使用
2020/05/28 Python
使用tensorflow进行音乐类型的分类
2020/08/14 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
2020/10/21 Python
数据库笔试题
2013/05/09 面试题
《鞋匠的儿子》教学反思
2014/03/02 职场文书
行政内勤岗位职责
2014/04/07 职场文书
幼儿园课题实施方案
2014/05/14 职场文书
大学生创业计划书
2014/08/14 职场文书
领导干部对照检查材料
2014/08/24 职场文书
财务工作检讨书
2014/10/29 职场文书
英文感谢信范文
2015/01/21 职场文书
2016年党员读书月活动总结
2016/04/06 职场文书