>>分享Web前端开发技术,并对孙卫琴的《精通Vue.js:Web前端开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 27006 个阅读者 刷新本主题
 * 贴子主题:  jQuery UI 范例:对话框(Dialog) 回复文章 点赞(0)  收藏  
作者:sunshine    发表时间:2019-08-13 16:29:56     消息  查看  搜索  好友  邮件  复制  引用

  

jQuery UI 范例 -  对话框(Dialog)

     在一个交互覆盖层中打开内容。                    

默认功能

     基本的对话框窗口是一个定位于视区中的覆盖层,同时通过一个 iframe 与页面内容分隔开(就像 select 元素)。它由一个标题栏和一个内容区域组成,且可以移动,调整尺寸,默认可通过 'x' 图标关闭。


<!doctype html>

<html lang="en">

<head>

  <meta charset="utf-8">

  <title>jQuery UI 对话框(Dialog) - 默认功能</title>

  <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">

  <script src="//code.jquery.com/jquery-1.9.1.js"></script>

  <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>

  <link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">

  <script>

  $(function() {

    $( "#dialog" ).dialog();

  });

  </script>

</head>

<body>

         <div id="dialog" title="基本的对话框">

  <p>这是一个默认的对话框,用于显示信息。对话框窗口可以移动,调整尺寸,默认可通过 'x' 图标关闭。</p>

</div>

</body>

</html>

动画

     可以通过为 show/hide 属性指定一个特效来动画显示对话框。您必须为想使用的特效引用独立的特效文件。


<!doctype html>

<html lang="en">

<head>

  <meta charset="utf-8">

  <title>jQuery UI 对话框(Dialog) - 动画</title>

  <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">

  <script src="//code.jquery.com/jquery-1.9.1.js"></script>

  <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>

  <link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">

  <script>

  $(function() {

    $( "#dialog" ).dialog({

      autoOpen: false,

      show: {

        effect: "blind",

        duration: 1000

      },

      hide: {

        effect: "explode",

        duration: 1000

      }

    });

             $( "#opener" ).click(function() {

      $( "#dialog" ).dialog( "open" );

    });

  });

  </script>

</head>

<body>

         <div id="dialog" title="Basic dialog">

  <p>这是一个动画显示的对话框,用于显示信息。对话框窗口可以移动,调整尺寸,默认可通过 'x' 图标关闭。</p>

</div>

         <button id="opener">打开对话框</button>

</body>

</html>

基本的模态

     模态对话框防止用户与对话框以外的页面其他部分进行交互,直到对话框关闭为止。


<!doctype html>

<html lang="en">

<head>

  <meta charset="utf-8">

  <title>jQuery UI 对话框(Dialog) - 基本的模态</title>

  <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">

  <script src="//code.jquery.com/jquery-1.9.1.js"></script>

  <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>

  <link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">

  <script>

  $(function() {

    $( "#dialog-modal" ).dialog({

      height: 140,

      modal: true

    });

  });

  </script>

</head>

<body>

         <div id="dialog-modal" title="基本的模态对话框">

  <p>添加模态覆盖屏幕,让对话框看起来更突出,因为它让页面上其他内容变暗。</p>

</div>

         <p>Sed vel diam id libero <a href="http://www.w3cschool.cc">rutrum convallis</a>. Donec aliquet leo vel magna. Phasellus rhoncus faucibus ante. Etiam bibendum, enim faucibus aliquet rhoncus, arcu felis ultricies neque, sit amet auctor elit eros a lectus.</p>

</body>

</html>

模态确认

     确认一个动作可能是破坏性的也可能是有意义的。设置

modal

选项为 true,并通过

buttons

选项来指定主要的和次要的用户动作。


<!doctype html>

<html lang="en">

<head>

  <meta charset="utf-8">

  <title>jQuery UI 对话框(Dialog) - 模态确认</title>

  <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">

  <script src="//code.jquery.com/jquery-1.9.1.js"></script>

  <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>

  <link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">

  <script>

  $(function() {

    $( "#dialog-confirm" ).dialog({

      resizable: false,

      height:140,

      modal: true,

      buttons: {

        "Delete all items": function() {

          $( this ).dialog( "close" );

        },

        Cancel: function() {

          $( this ).dialog( "close" );

        }

      }

    });

  });

  </script>

</head>

<body>

         <div id="dialog-confirm" title="清空回收站吗?">

  <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>这些项目将被永久删除,并且无法恢复。您确定吗?</p>

</div>

         <p>Sed vel diam id libero <a href="http://www.w3cschool.cc">rutrum convallis</a>. Donec aliquet leo vel magna. Phasellus rhoncus faucibus ante. Etiam bibendum, enim faucibus aliquet rhoncus, arcu felis ultricies neque, sit amet auctor elit eros a lectus.</p>

</body>

</html>

模态表单

     使用模态对话框来请求用户在一个多步骤过程中输入数据。在内容区域嵌入 form 标记,设置

modal

选项为 true,并通过

buttons

选项来指定主要的和次要的用户动作。


<!doctype html>

<html lang="en">

<head>

  <meta charset="utf-8">

  <title>jQuery UI 对话框(Dialog) - 模态表单</title>

  <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">

  <script src="//code.jquery.com/jquery-1.9.1.js"></script>

  <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>

  <link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">

  <style>

    body { font-size: 62.5%; }

    label, input { display:block; }

    input.text { margin-bottom:12px; width:95%; padding: .4em; }

    fieldset { padding:0; border:0; margin-top:25px; }

    h1 { font-size: 1.2em; margin: .6em 0; }

    div#users-contain { width: 350px; margin: 20px 0; }

    div#users-contain table { margin: 1em 0; border-collapse: collapse; width: 100%; }

    div#users-contain table td, div#users-contain table th { border: 1px solid #eee; padding: .6em 10px; text-align: left; }

    .ui-dialog .ui-state-error { padding: .3em; }

    .validateTips { border: 1px solid transparent; padding: 0.3em; }

  </style>

  <script>

  $(function() {

    var name = $( "#name" ),

      email = $( "#email" ),

      password = $( "#password" ),

      allFields = $( [] ).add( name ).add( email ).add( password ),

      tips = $( ".validateTips" );

             function updateTips( t ) {

      tips

        .text( t )

        .addClass( "ui-state-highlight" );

      setTimeout(function() {

        tips.removeClass( "ui-state-highlight", 1500 );

      }, 500 );

    }

             function checkLength( o, n, min, max ) {

      if ( o.val().length > max || o.val().length < min ) {

        o.addClass( "ui-state-error" );

        updateTips( "" + n + " 的长度必须在 " +

          min + " 和 " + max + " 之间。" );

        return false;

      } else {

        return true;

      }

    }

             function checkRegexp( o, regexp, n ) {

      if ( !( regexp.test( o.val() ) ) ) {

        o.addClass( "ui-state-error" );

        updateTips( n );

        return false;

      } else {

        return true;

      }

    }

             $( "#dialog-form" ).dialog({

      autoOpen: false,

      height: 300,

      width: 350,

      modal: true,

      buttons: {

        "创建一个帐户": function() {

          var bValid = true;

          allFields.removeClass( "ui-state-error" );

                   bValid = bValid && checkLength( name, "username", 3, 16 );

          bValid = bValid && checkLength( email, "email", 6, 80 );

          bValid = bValid && checkLength( password, "password", 5, 16 );

                   bValid = bValid && checkRegexp( name, /^[url=]([0-9a-z_])+$/i, "用户名必须由 a-z、0-9、下划线组成,且必须以字母开头。" );

          // From jquery.validate.js (by joern), contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/

          bValid = bValid && checkRegexp( email, /^((([url=]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([url=]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([url=]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([url=]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([url=]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([url=]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([url=]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([url=]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([url=]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([url=]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "eg. ui@jquery.com" );

          bValid = bValid && checkRegexp( password, /^([0-9a-zA-Z])+$/, "密码字段只允许: a-z 0-9" );

                   if ( bValid ) {

            $( "#users tbody" ).append( "<tr>" +

              "<td>" + name.val() + "</td>" +

              "<td>" + email.val() + "</td>" +

              "<td>" + password.val() + "</td>" +

            "</tr>" );

            $( this ).dialog( "close" );

          }

        },

        Cancel: function() {

          $( this ).dialog( "close" );

        }

      },

      close: function() {

        allFields.val( "" ).removeClass( "ui-state-error" );

      }

    });

             $( "#create-user" )

      .button()

      .click(function() {

        $( "#dialog-form" ).dialog( "open" );

      });

  });

  </script>

</head>

<body>

         <div id="dialog-form" title="创建新用户">

  <p class="validateTips">所有的表单字段都是必填的。</p>

           <form>

  <fieldset>

    <label for="name">名字</label>

    <input type="text" name="name" id="name" class="text ui-widget-content ui-corner-all">

    <label for="email">邮箱</label>

    <input type="text" name="email" id="email" value="" class="text ui-widget-content ui-corner-all">

    <label for="password">密码</label>

    <input type="password" name="password" id="password" value="" class="text ui-widget-content ui-corner-all">

  </fieldset>

  </form>

</div>

                  <div id="users-contain" class="ui-widget">

  <h1>已有的用户:</h1>

  <table id="users" class="ui-widget ui-widget-content">

    <thead>

      <tr class="ui-widget-header ">

        <th>名字</th>

        <th>邮箱</th>

        <th>密码</th>

      </tr>

    </thead>

    <tbody>

      <tr>

        <td>John Doe</td>

        <td>john.doe@example.com</td>

        <td>johndoe1</td>

      </tr>

    </tbody>

  </table>

</div>

<button id="create-user">创建新用户</button>

</body>

</html>

模态消息

     使用模态对话框来在下一步动作执行之前确认信息和动作。设置

modal

选项为 true,并通过

buttons

选项来指定主要的动作(Ok)。


<!doctype html>

<html lang="en">

<head>

  <meta charset="utf-8">

  <title>jQuery UI 对话框(Dialog) - 模态消息</title>

  <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">

  <script src="//code.jquery.com/jquery-1.9.1.js"></script>

  <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>

  <link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">

  <script>

  $(function() {

    $( "#dialog-message" ).dialog({

      modal: true,

      buttons: {

        Ok: function() {

          $( this ).dialog( "close" );

        }

      }

    });

  });

  </script>

</head>

<body>

         <div id="dialog-message" title="下载完成">

  <p>

    <span class="ui-icon ui-icon-circle-check" style="float:left; margin:0 7px 50px 0;"></span>

    您的文件已经成功下载到文件夹中。

  </p>

  <p>

    当前使用存储空间的 <b>36%</b>。

  </p>

</div>

         <p>Sed vel diam id libero <a href="http://www.w3cschool.cc">rutrum convallis</a>. Donec aliquet leo vel magna. Phasellus rhoncus faucibus ante. Etiam bibendum, enim faucibus aliquet rhoncus, arcu felis ultricies neque, sit amet auctor elit eros a lectus.</p>

</body>

</html>

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-02-24 11:00:22 重新编辑]
  Java面向对象编程-->Lambda表达式
  JavaWeb开发-->Web运作原理(Ⅰ)
  JSP与Hibernate开发-->立即检索和延迟检索策略
  Java网络编程-->创建非阻塞的HTTP服务器
  精通Spring-->
  Vue3开发-->通过Axios访问服务器
  彻底明白VUE中的done参数和函数作用
  CSS的style样式的三种用法
  一看就懂得移动端rem布局、rem如何换算
  jQuery 选择器
  JavaScript中的HTML DOM Label 对象
  JavaScript的Window 对象
  CSS 伪类
  CSS Border(边框)
  HTML中插入脚本的用法
  JavaScript 测试 jQuery
  JavaScript的window.screen对象
  JavaScript 的代码规范
  JavaScript中的for 循环
  JavaScript 对象 的创建和使用
  用JavaScript制作弹出页面
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。