JQuery实现的模块交换动画效果
<!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实现的模块交换动画效果的更多相关文章
- Jquery库自带的动画效果方法记录
1.显示和隐藏hide()和show() <script type="text/javascript"> $(function() { ...
- 基于jQuery CSS3鼠标点击动画效果
分享基于jQuery CSS3鼠标点击动画效果支持图片或内容滑动,允许设置动画延迟效果.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class="co ...
- jquery使用CSS3实现文字动画效果插件Textillate.js
Textillate是一款基于jquery的使用CSS3实现文字动画的小巧插件.Textillate.js集成了一些很棒的使用CSS3动画效果的 JavaScript 库,您可非常轻轻松地把这些动画效 ...
- JQuery模拟实现天猫购物车动画效果
测试程序源代码下载地址:源码 一.功能描述: 1.点击购买按钮,模拟抛物线将物品弹到购物车里: 2.购物车添加物品后,显示+1动画: 效果图如下: 实现如下: 1.导入jquery相关的包: < ...
- jQuery学习之旅 Item9 动画效果
1.元素的显示和隐藏 display:none; 隐藏 display:block; 显示 简单显示和隐藏方法 a) show() 显示 b) hide() 隐藏 c) toggle() 开关,显示则 ...
- JQuery插件 aos.js-添加动画效果
原文地址:http://www.mamicode.com/info-detail-1785357.html 简介: aos.js是一款效果超赞的页面滚动元素动画jQuery动画库插件.该动画库可以在页 ...
- 【Demo】jQuery 轮播图简单动画效果
功能实现: (1)设定图片称号的鼠标悬停事件: (2)在事件中利用自定义动画函数调整显示图片,并修改对应标号样式: (3)为图片显示区域设定鼠标悬停事件: (4)当鼠标停在该区域时,清除图片切换动画定 ...
- jQuery中的事件和动画效果
刚刚学习了jqyery的一些事件和动画,下面我来总结一下: 1.基础事件 1.window事件,它的对应方法是ready(),$(document).ready()方法是事件模块中最重要的一个函数,可 ...
- jquery实现隐藏显示层动画效果、仿新浪字符动态输入、tab效果
已经有两年多没登陆csdn账号了,中间做了些旁的事,可是现在却还是回归程序,但改做前端了,虽然很多东西都已忘得差不多了,但还是应该摆正心态,慢慢来,在前端漫游,做一只快乐双鱼. 路是一步一步走出来的, ...
随机推荐
- 获取广告标识符ifad
#import <AdSupport/ASIdentifierManager.h> NSString *adId =[[[ASIdentifierManager sharedManager ...
- HTML5常用的方法
1.html禁止手机页面放大缩小 在页面head中加入<meta name="viewport" content="width=device-width, init ...
- 延时函数出错,volatile一例
莫名其妙的错误.使用Systick做的延时. 初始化是这样的: //SysTick配置 SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); if ...
- Android学习笔记(九)
Android中的四种基本布局 1.LinearLayout LinearLayout称为线性布局,是一种常用的布局.修改activity_main.xml中的代码,如下所示: <LinearL ...
- project euler 开坑
pe76: 要把100写成至少2个数的和的形式,有多少种方案数 整数拆分 f(i,j)表示把i拆分成不超过j的数的和的方案数 f(i,j) = f(i-j,j) + f(i,j-1) j <= ...
- Hololens缩放物体源码(待完善)
using UnityEngine; using System.Collections; public class ScaleQuad : MonoBehaviour { public GameObj ...
- recyleView使用笔记
直接上代码: package com.test.recycleview; import android.app.Activity; import android.graphics.Canvas; im ...
- 好久没上cnblogs了
以为登录不上了,原来还是可以登录上的,不错~~~上来标记一下
- get_list_or_404(klass, *args, **kwargs)和get_object_or_404(klass, *args, **kwargs)区别
get_object_or_404() 是通过调用get()方法从model管理器上获取数据, 如果对象不存在,它会报Http404的异常,而不是model的 DoseNotExist异常. get_ ...
- truncate table语句和delete table语句的区别
truncate table 表名 ; delete from 表名; 都是用来删除表中所有的记录,前者删除数据后表的标识列会重新开始编号,它比delete语句使用的系统资源和事务日志资源更少,但是表 ...