<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>JQuery实现的模块交换动画效果</title>
<meta name="Keywords" content="jquery,模块,交换,动画,javascript特效"/>
<meta name="Description" content="JQuery实现的模块交换动画效果。在模块交换过程中,设置模块position为absolute,实现交换。"/>
<script type="text/javascript" src="jquery-1.8.1.min.js""></script>
<style type="text/css">
div.container{position:relative;}
div.container .itemA,div.container .itemE{width:300px;height:100px;background:#aaa;}
div.container .itemE{background:#eee;}
div.container .itemA .btn,div.container .itemE .btn{text-align:right;}
</style>
<script type="text/javascript">
function addItem() {
var p = $('.container'), lastChild = p.children(":last");
p.append(lastChild.clone().attr('class', lastChild.attr('class') == 'itemE' ? 'itemA' : 'itemE'));
p.children(':last').append("--" + new Date().toLocaleTimeString());
}
function setItemPosition(dvContainer, isAB) {//更新子项的position和top
dvContainer.css('height', isAB ? dvContainer.height() : '');
var h = 0, eachItem;
dvContainer.children().each(function () {
eachItem = $(this);
eachItem.css({ 'position': isAB ? 'absolute' : 'relative', 'top': isAB ? h : '' });
if (isAB) h += eachItem.outerHeight(true);
});
}
$(function () {
$('#btnAdd').click(addItem);
$('.btn input').live('click', function () {
var o = $(this), pNode = o.parent().parent(), v = o.val();
switch (v) {
case '删除': if (pNode.parent().children().length < 2) alert('至少留有一项!'); else pNode.remove(); break;
case '上':
case '下':
var refNode = pNode[v == '上' ? 'prev' : 'next']();
if (refNode[0] == null) { alert(v == '上' ? '已经是第一位!' : '已经是最后一位!'); return false; }
setItemPosition(pNode.parent(), true);
var nItemTop = refNode.css('top'), refItemTop = pNode.css('top');
pNode[v == '上' ? 'after' : 'before'](refNode); //交换位置
pNode.animate({ top: nItemTop }, 300); ;
refNode.animate({ top: refItemTop }, 300, function () { setItemPosition(pNode.parent()); });
break;
}
});
});
</script>
</head>
<body>
<input type="button" value="添加新快" id="btnAdd"/>
<div class="container">
<div class="itemA"><div class="btn"><input type="button" value="删除" /><input type="button" value="上" /><input type="button" value="下" /></div>其他内容</div>
<div class="itemE"><div class="btn"><input type="button" value="删除" /><input type="button" value="上" /><input type="button" value="下" /></div>其他内容</div>
</div>
</body>
</html>

JQuery实现的模块交换动画效果的更多相关文章

  1. Jquery库自带的动画效果方法记录

    1.显示和隐藏hide()和show() <script type="text/javascript">             $(function() {      ...

  2. 基于jQuery CSS3鼠标点击动画效果

    分享基于jQuery CSS3鼠标点击动画效果支持图片或内容滑动,允许设置动画延迟效果.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="co ...

  3. jquery使用CSS3实现文字动画效果插件Textillate.js

    Textillate是一款基于jquery的使用CSS3实现文字动画的小巧插件.Textillate.js集成了一些很棒的使用CSS3动画效果的 JavaScript 库,您可非常轻轻松地把这些动画效 ...

  4. JQuery模拟实现天猫购物车动画效果

    测试程序源代码下载地址:源码 一.功能描述: 1.点击购买按钮,模拟抛物线将物品弹到购物车里: 2.购物车添加物品后,显示+1动画: 效果图如下: 实现如下: 1.导入jquery相关的包: < ...

  5. jQuery学习之旅 Item9 动画效果

    1.元素的显示和隐藏 display:none; 隐藏 display:block; 显示 简单显示和隐藏方法 a) show() 显示 b) hide() 隐藏 c) toggle() 开关,显示则 ...

  6. JQuery插件 aos.js-添加动画效果

    原文地址:http://www.mamicode.com/info-detail-1785357.html 简介: aos.js是一款效果超赞的页面滚动元素动画jQuery动画库插件.该动画库可以在页 ...

  7. 【Demo】jQuery 轮播图简单动画效果

    功能实现: (1)设定图片称号的鼠标悬停事件: (2)在事件中利用自定义动画函数调整显示图片,并修改对应标号样式: (3)为图片显示区域设定鼠标悬停事件: (4)当鼠标停在该区域时,清除图片切换动画定 ...

  8. jQuery中的事件和动画效果

    刚刚学习了jqyery的一些事件和动画,下面我来总结一下: 1.基础事件 1.window事件,它的对应方法是ready(),$(document).ready()方法是事件模块中最重要的一个函数,可 ...

  9. jquery实现隐藏显示层动画效果、仿新浪字符动态输入、tab效果

    已经有两年多没登陆csdn账号了,中间做了些旁的事,可是现在却还是回归程序,但改做前端了,虽然很多东西都已忘得差不多了,但还是应该摆正心态,慢慢来,在前端漫游,做一只快乐双鱼. 路是一步一步走出来的, ...

随机推荐

  1. IOS-UITextField键盘不隐藏问题

    这久在手机也页面做了注册功能,需要很多的UITextField,有些是手动输入文字的,有些是点击下拉框选择的,这就出现了当点击下拉框时,就需要将键盘隐藏. - (void)textFieldDidBe ...

  2. Linux 编译ACE

    1.下载 从官网下载地址 http://download.dre.vanderbilt.edu/previous_versions/选择一个版本下载. 注意,如果是在linux上编译,需要下载.gz结 ...

  3. [系统集成] 部署 mesos-exporter 和 prometheus 监控 mesos task

    前几天我在mesos平台上基于 cadvisor部署了 influxdb 和 grafana,用于监控 mesos 以及 docker app 运行信息,发现这套监控系统不太适合 mesos + do ...

  4. 手把手教你ARC——iOS/Mac开发ARC入门和使用

    转载自:http://www.onevcat.com/2012/06/arc-hand-by-hand/ 本文部分实例取自iOS 5 Toturail一书中关于ARC的教程和公开内容,仅用于技术交流和 ...

  5. Calendar

    /* * Calendar:它为特定瞬间与一组诸如 YEAR.MONTH.DAY_OF_MONTH.HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方 ...

  6. Codeforces Round #377 (Div. 2) D. Exams(二分答案)

    D. Exams Problem Description: Vasiliy has an exam period which will continue for n days. He has to p ...

  7. Python从线程获取函数返回值

    Python中利用强大的threading模块可以很容易的实现多线程开发,提高运行速度.这一般是对某个进行大量计算操作的的函数进行多线程处理,然后合并各线程的结果.获取函数返回值的方法可以如下: 1) ...

  8. Kafka深度解析,众人推荐,精彩好文!

    作者: Jason Guo 背景介绍 Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统.主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,并保证即使对TB级以上数据 ...

  9. [Linux编程] module_param()函数学习笔记

    在读TCP cubic源码中,遇到了module_param(),网上查到的资料如下: 在用户态下编程可以通过main()来传递命令行参数,而编写一个内核模块则可通过module_param()来传递 ...

  10. 查看regulator的信息

    例如,查看ldo6 /sys/devices/soc.0/qcom,rpm-smd.35/rpm-regulator-ldoa6.85/regulator-l6.110/regulator/regul ...