• 淘宝KISSYUI popup弹出层功能增强


    转自:玉米串

    上篇文章介绍了最基本的KISSY Dialog弹出层《简洁好看的popup弹出层源码-KISSY Dialog》,表现效果简洁美观。

    现在我在原来代码的基础上加上必填项验证的功能和可拖动功能。

    很简单,只加了几行代码就搞定。还是下载就可运行,大家可以对比下代码的不同。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>umtry.com</title>
    <meta name="author" content="umtry" />
    <meta name="copyright" content="2011-2099 umtry.com" />
    <link rel="stylesheet" type="text/css" href="http://a.tbcdn.cn/s/kissy/1.2.0/cssbase-min.css" />
    <script type="text/javascript" src="http://a.tbcdn.cn/s/kissy/1.2.0/kissy-min.js"></script>
    <style>
    /*******全局***************/
    body
    {background:url(../images/bg.jpg) no-repeat; font-family:Arial, Helvetica, sans-serif; font-size:12px;}
    table
    {}
    tr
    {}
    th
    {width:130px;vertical-align:top;}
    th.ltitle
    {text-align:right;padding:7px 10px;}
    th.bgc
    {background-color:#edfaff;}
    td
    {vertical-align:top;padding:7px 7px;}
    /*******通用弹出层***************/
    .dialog
    {position:absolute;left:-9999px;top:-9999px;}
    .pupo
    {background-color:#ffffff;border:1px solid #c2d5e3;padding:1px 2px;}
    .pupo .header
    {-moz-border-radius: 3px;-webkit-border-radius: 3px;-khtml-border-radius: 3px;border-radius: 3px;background-color:#6ecff9;font-size:15px;font-weight:border;padding:4px 5px;}
    .pupo .body
    {padding:5px 5px;}
    .pupo .footer
    {text-align:right;}
    /*******弹出层底部按钮****************/
    .my-button-cls
    {
    text-align
    : center;
    background
    : #AACF4C;
    border
    : 1px solid #86A33B;
    padding
    : 4px 10px;
    -moz-border-radius
    : 3px;
    -webkit-border-radius
    : 3px;
    -khtml-border-radius
    : 3px;
    border-radius
    : 3px;
    color
    : white;
    margin
    : 10px 10px;
    cursor
    : default;
    }
    </style>
    </head>
    <body>
    <input type="button" name="addnotice" id="addnotice" value="点我试试">
    <!------------------------------------------------------->
    <div class='dialog pupo' id='notice_dialog'>
    <div class='content'>
    <div class='header'>
    课题审批
    </div>
    <div class='body'>
    <form action="project.php?mod=detail&do=doaddnotice" name="aj_notice" id="aj_notice" method="POST">
    <table>
    <tr>
    <td>课题名称:</td><td>论武力的作用</td>
    </tr>
    <tr>
    <td>公告类型</td>
    <td>
    <select name="ntype">
    <option value=1> 组内公告 </option>
    <option value=2> 全站公告 </option>
    </select>
    </td>
    </tr>
    <tr>
    <td>公告内容:</td><td><textarea cols="50" rows="5" name="content" id="content"></textarea></td>
    </tr>
    </table>
    <input type="hidden" name="pid" id="pid" value="<{$project.project_id}>">
    </form>
    </div>
    <div class='footer'>
    </div>
    </div>
    </div>
    <!---------------------------------------------------------->
    <script type="text/javascript">
    //与原来的代码相比,这里又多引入了连个文件‘validation’和‘dd’,一个实现验证功能,一个实现拖动功能
    KISSY.use("ua,node,overlay,button,validation,dd", function(S, UA, Node, O, Button, Validation, DD) {
    var d = new O.Dialog({
    srcNode:
    "#notice_dialog",
    400,
    closable:
    false,//去除右上角的关闭符号"X"
    elStyle:{
    position: UA.ie
    == 6 ? "absolute" : "fixed"
    },
    align: {
    points: [
    'cc', 'cc']//弹出层的位置,在浏览器正中央
    },
    effect: {
    effect:
    "fade",//以渐进的效果显示弹出层,
    duration:0.5
    },
    header:Node.one(
    '.header'),
    body:Node.one(
    '.body'),
    footer:Node.one(
    '.footer'),
    mask:
    true
    });
    // 生成两个按钮
    var ok = new Button({
    content:
    " 确 认 ",
    render: d.get(
    'footer'),
    50,
    elCls:
    'my-button-cls',
    tooltip:
    "点击发布公告"
    });
    var cancel = new Button({
    content:
    " 关 闭 ",
    render: d.get(
    'footer'),
    50,
    elCls:
    'my-button-cls',
    tooltip:
    "点击关闭"
    });
    ok.render();
    //渲染确认按钮
    cancel.render();//渲染关闭按钮
    //验证必填项
    var verifyform = new Validation('#aj_notice',{
    style:
    "under"
    });
    verifyform.add(
    "#content",{
    length:[
    1,10] //限制公告内容的长度。此行注释掉后就只会判断是否填写。更多的配置项请查询KISSY API
    });

    Node.one(
    '#addnotice').on('click', function(e) {//点击按钮触发
    d.show();
    });
    ok.on(
    "click",function(){//点击确认按钮触发
    //判断必填项是否填写
    var isValid = verifyform.isValid();
    if(!isValid){
    return false;
    }
    d.hide();
    S.DOM.get(
    '#aj_notice').submit();//这里就是点击确认后提交弹出层表单
    });
    cancel.on(
    "click",function(){//点击关闭按钮触发
    d.hide();
    });
    });
    </script>
    </body>
    </html>





  • 相关阅读:
    Java简单游戏开发之碰撞检测
    Android应用程序在新的进程中启动新的Activity的方法和过程分析
    Android应用程序组件Content Provider的共享数据更新通知机制分析
    Android应用程序组件Content Provider在应用程序之间共享数据的原理分析
    VS2005检查内存泄露的简单方法
    iOS如何让xcode自动检查内存泄露
    wf
    VC++ListBox控件的使用
    textoverflow:ellipsis溢出文本显示省略号的详细方法
    VC编写代码生成GUID并转换为CString字符串
  • 原文地址:https://www.cnblogs.com/fcode/p/2211992.html
Copyright © 2020-2023  润新知