=波波日志 > JavaScript/Ajax > JQuery实现的模块交换动画效果=

JQuery实现的模块交换动画效果

JQuery实现的模块交换动画效果

点击下载此附件

源代码如下
+展开
-HTML
<!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="CHM/jq.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>


类别:JavaScript/Ajax 作者:波波 日期:2010-11-30 【评论:0】 
 
暂时没有评论!
发表留言
  • *昵称:
  • 头像:
  • 电子邮件: [留下您的邮件,方便管理员回复您。]
  • 个人网站: *验证码:
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载或引用的作品侵犯了您的权利,请通知我们,我们会及时删除!
Powered by showbo,©2012,桂ICP备05005887号 京公网安备1101055090