special-demo.html 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>镜像站@layer 组件特殊示例</title>
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  8. <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  9. <link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" tppabs="https://www.layui.com/layuiadmin/std/dist/layuiadmin/layui/css/layui.css" media="all">
  10. <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" tppabs="https://www.layui.com/layuiadmin/std/dist/layuiadmin/style/admin.css" media="all">
  11. </head>
  12. <body>
  13. <div class="layui-card layadmin-header">
  14. <div class="layui-breadcrumb" lay-filter="breadcrumb">
  15. <a lay-href="">主页</a>
  16. <a><cite>组件</cite></a>
  17. <a href="http://www.baidu.com/" target="_blank">layer</a>
  18. <a><cite>特殊示例</cite></a>
  19. </div>
  20. </div>
  21. <style>
  22. /* 这段样式只是用于演示 */
  23. #LAY-component-layer-special-demo .layui-card-body{padding-top: 15px;}
  24. </style>
  25. <div class="layui-fluid" id="LAY-component-layer-special-demo">
  26. <div class="layui-row layui-col-space15">
  27. <div class="layui-col-md12">
  28. <div class="layui-card">
  29. <div class="layui-card-header">场景</div>
  30. <div class="layui-card-body">
  31. <div class="layui-btn-container layadmin-layer-demo">
  32. <button data-method="setTop" class="layui-btn layui-btn-primary">多窗口模式,层叠置顶 / Esc 关闭</button>
  33. <button data-method="confirmTrans" class="layui-btn layui-btn-primary">配置一个透明的询问框</button>
  34. <button data-method="notice" class="layui-btn layui-btn-primary">示范一个公告层</button>
  35. </div>
  36. </div>
  37. </div>
  38. </div>
  39. <div class="layui-col-md12">
  40. <div class="layui-card">
  41. <div class="layui-card-header">坐标</div>
  42. <div class="layui-card-body">
  43. <div class="layui-btn-container layadmin-layer-demo">
  44. <button data-method="offset" data-type="t" class="layui-btn layui-btn-primary">上弹出</button>
  45. <button data-method="offset" data-type="r" class="layui-btn layui-btn-primary">右弹出</button>
  46. <button data-method="offset" data-type="b" class="layui-btn layui-btn-primary">下弹出</button>
  47. <button data-method="offset" data-type="l" class="layui-btn layui-btn-primary">左弹出</button>
  48. <button data-method="offset" data-type="lt" class="layui-btn layui-btn-primary">左上弹出</button>
  49. <button data-method="offset" data-type="lb" class="layui-btn layui-btn-primary">左下弹出</button>
  50. <button data-method="offset" data-type="rt" class="layui-btn layui-btn-primary">右上弹出</button>
  51. <button data-method="offset" data-type="rb" class="layui-btn layui-btn-primary">右下弹出</button>
  52. <button data-method="offset" data-type="auto" class="layui-btn layui-btn-primary">居中弹出</button>
  53. </div>
  54. </div>
  55. </div>
  56. </div>
  57. </div>
  58. </div>
  59. <script src="../../../layuiadmin/layui/layui.js" tppabs="https://www.layui.com/layuiadmin/std/dist/layuiadmin/layui/layui.js"></script>
  60. <script>
  61. layui.config({
  62. base: '../../../layuiadmin/' //静态资源所在路径
  63. }).extend({
  64. index: 'lib/index' //主入口模块
  65. }).use(['index'], function(){
  66. var $ = layui.$
  67. ,admin = layui.admin
  68. ,element = layui.element
  69. ,router = layui.router();
  70. element.render();
  71. var active = {
  72. setTop: function(){
  73. var that = this;
  74. //多窗口模式,层叠置顶
  75. layer.open({
  76. type: 1 //此处以iframe举例
  77. ,title: '当你选择该窗体时,即会在最顶端'
  78. ,area: ['390px', '260px']
  79. ,shade: 0
  80. ,maxmin: true
  81. ,offset: [ //为了演示,随机坐标
  82. Math.random()*($(window).height()-300)
  83. ,Math.random()*($(window).width()-390)
  84. ]
  85. ,content: '<div style="padding: 15px;">内容标记:'+ new Date().getTime() + ',按 ESC 键可关闭。<br><br>当你的页面有很多很多 layer 窗口,你需要像 Window 窗体那样,点击某个窗口,该窗体就置顶在上面,那么 layer.setTop() 可以来轻松实现。它采用巧妙的逻辑,以使这种置顶的性能达到最优。</div>'
  86. ,btn: ['继续弹出', '全部关闭'] //只是为了演示
  87. ,yes: function(){
  88. $(that).click();
  89. }
  90. ,btn2: function(){
  91. layer.closeAll();
  92. }
  93. ,zIndex: layer.zIndex //重点1
  94. ,success: function(layero, index){
  95. layer.setTop(layero); //重点2. 保持选中窗口置顶
  96. //记录索引,以便按 esc 键关闭。事件见代码最末尾处。
  97. layer.escIndex = layer.escIndex || [];
  98. layer.escIndex.unshift(index);
  99. //选中当前层时,将当前层索引放置在首位
  100. layero.on('mousedown', function(){
  101. var _index = layer.escIndex.indexOf(index);
  102. if(_index !== -1){
  103. layer.escIndex.splice(_index, 1); //删除原有索引
  104. }
  105. layer.escIndex.unshift(index); //将索引插入到数组首位
  106. });
  107. }
  108. ,end: function(){
  109. //更新索引
  110. if(typeof layer.escIndex === 'object'){
  111. layer.escIndex.splice(0, 1);
  112. }
  113. }
  114. });
  115. }
  116. ,confirmTrans: function(){
  117. layer.closeAll();
  118. layer.msg('大部分参数都是可以公用的<br>合理搭配,展示不一样的风格', {
  119. time: 20*1000,
  120. btn: ['明白了', '知道了', '哦']
  121. });
  122. }
  123. ,notice: function(){
  124. layer.closeAll();
  125. layer.open({
  126. type: 1
  127. ,title: false
  128. ,closeBtn: false
  129. ,area: '300px;'
  130. ,shade: 0.8
  131. ,id: 'LAY_layuipro'
  132. ,btn: ['火速围观', '残忍拒绝']
  133. ,btnAlign: 'c'
  134. ,moveType: 1 //拖拽模式,0或者1
  135. ,content: '<div style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">你知道吗?亲!<br>layer ≠ layui<br><br>layer只是作为Layui的一个弹层模块,由于其用户基数较大,所以常常会有人以为layui是layerui<br><br>layer虽然已被 Layui 收编为内置的弹层模块,但仍然会作为一个独立组件全力维护、升级。<br><br>我们此后的征途是星辰大海 ^_^</div>'
  136. ,success: function(layero){
  137. var btn = layero.find('.layui-layer-btn');
  138. btn.find('.layui-layer-btn0').attr({
  139. href: 'http://www.baidu.com/'
  140. ,target: '_blank'
  141. });
  142. }
  143. });
  144. }
  145. ,offset: function(othis){
  146. var type = othis.data('type')
  147. ,text = othis.text();
  148. layer.open({
  149. type: 1
  150. ,offset: type
  151. ,id: 'layerDemo'+type
  152. ,content: '<div style="padding: 20px 100px;">'+ text +'</div>'
  153. ,btn: '关闭全部'
  154. ,btnAlign: 'c'
  155. ,shade: 0
  156. ,yes: function(){
  157. layer.closeAll();
  158. }
  159. });
  160. }
  161. };
  162. $('#LAY-component-layer-special-demo .layadmin-layer-demo .layui-btn').on('click', function(){
  163. var othis = $(this), method = othis.data('method');
  164. active[method] ? active[method].call(this, othis) : '';
  165. });
  166. //多窗口模式 - esc 键
  167. $(document).on('keyup', function(e){
  168. if(e.keyCode === 27){
  169. layer.close(layer.escIndex ? layer.escIndex[0] : 0);
  170. }
  171. });
  172. });
  173. </script>
  174. </body>
  175. </html>