组件--弹出层

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Examples</title>
<meta name="description" content="">
<meta name="keywords" content="">
<style type="text/css">
     *{
          padding: 0;
          margin: 0;
     }
   
     .pop{
          position: fixed;
          width: 100px;
          height: 100px;
          background-color: #aaa;
          border:1px solid #ccc;
          z-index:99;
     }
     .title{
          height: 30px;
          background-color: gray;
          color:#fff;
     }
     #mark{ position: absolute; z-index:1; width:100%; height:100%; background-color: #000; filter:alpha(opacity=70); opacity: 0.7; top:0; left:0;}
</style>
</head>
<body>
    <input type="button" value="btn1" />
    <input type="button" value="btn1" />
    <input type="button" value="btn1" />
     <!-- <div div="pop">
          <div class="title">
               <h2>title</h2>
          </div>
          <div class="content">
               content
          </div>
     </div> -->
     <!-- <div id="mark"></div> -->
    <script type="text/javascript">
         window.onload = function(){
              var abtn = document.getElementsByTagName(‘input‘);

abtn[0].onclick = function(){
                   var d1 = new pop(); //生成一个实例
                        d1.init({ //初始化实例,第一个走默认配置
                             iNow : 0

});
                      
              }
              abtn[1].onclick = function(){
                   var d1 = new pop(); //生成一个实例
                        d1.init({ //初始化实例,设置配置项
                             iNow : 1,
                             width: 200,
                             height: 200,
                             dir   : ‘right‘,
                             title : ‘ ‘,
                             mark  : true
                        });

}
         }

function pop(){ //构造函数,模版
              this.isPop = null;
              this.setting = { //默认参数
                   width: 300,
                   height:300,
                   dir   : ‘center‘,
                   mark  : false
              }
         };
         pop.prototype.json = {};

pop.prototype.init=function(opt){
              extend(this.setting, opt);//for in继承

if(this.json[opt.iNow] == undefined){
                   this.json[opt.iNow] = true;
              }
              if(this.json[opt.iNow]){
                   this.create();  //创建弹出框对象          
                   this.setClose(); //定义关闭按钮
                   //定义遮罩
                   if(this.setting.mark){
                        this.setMark();
                   }
                   this.json[opt.iNow] = false;
              }

}
         //创建弹窗
         pop.prototype.create = function(){
              //创建弹框html
              this.isPop = document.createElement(‘div‘);
              this.isPop .className = ‘pop‘;
              this.isPop .innerHTML = ‘<div class="title"><h2>title</h2></div><em id="close">关闭</em><div class="content">content</div>‘;
              document.body.appendChild(this.isPop);
              this.setStyle(); //设置弹框样式
            
         }
         pop.prototype.setMark = function(){
              //创建遮罩层
              var oMark = document.createElement(‘div‘);
              oMark.id = ‘mark‘;
              //追加遮罩html到页面中
              document.body.appendChild(oMark);
              //设置遮罩层样式
              oMark.style.width = setViewW() + ‘px‘;
              oMark.style.height = setViewH() + ‘px‘;
              this.oMark = oMark;
            
         }
         pop.prototype.setStyle = function(){
              //设置pop的宽高
              this.isPop.style.width = this.setting.width+‘px‘;
              this.isPop.style.height = this.setting.height+‘px‘;
              //alert(setViewH());
              //判断在窗口的位置
              if(this.setting.dir == ‘center‘){
                   this.isPop.style.left = (setViewW() - this.isPop.offsetWidth)/2 + ‘px‘;
                   this.isPop.style.top = (setViewH() - this.isPop.offsetHeight)/2 + ‘px‘;
              }else if(this.setting.dir == ‘right‘){
                   this.isPop.style.left = (setViewW() - this.isPop.offsetWidth) + ‘px‘;
                   this.isPop.style.top = (setViewH() - this.isPop.offsetHeight) + ‘px‘;
              }
            
         }
         //定义关闭功能
         pop.prototype.setClose = function(){
              var closeBtn = this.isPop.getElementsByTagName(‘em‘)[0];
              var _this = this;
                   closeBtn.onclick = function(){
                        document.body.removeChild(_this.isPop); //移除弹出层
                        //移除遮罩层
                        if(_this.setting.mark){
                             document.body.removeChild(_this.oMark);
                        }
                        _this.json[_this.setting.iNow] = true;
                   }
                 
         }
         //封装可视区宽高
         function setViewW(){
              return document.documentElement.clientWidth;
         }
         function setViewH(){
              return document.documentElement.clientHeight;
         }

//##
         function extend(c, p){
              for(var attr in p){
                   c[attr] = p[attr];
              }
         }

//
    </script>
</body>
</html>

时间: 2024-12-10 19:43:01

组件--弹出层的相关文章

React native 的弹出层组件使用

组件名称:Alert.AlertIOS  具体代码如下 /*弹出层测试*/ import React,{Component} from 'react'; import {   StyleSheet,   View,   Image,   Text,   TouchableOpacity,   ScrollView,   Navigator,   Alert, //引入Alert组件   TouchableHighlight,   AlertIOS  //引入AlertIOS组件 } from '

javascript对话框(弹出层)组件

http://www.blueidea.com/download/product/2010/7513.asp#comment 1. 从头到尾对一遍<<Javascript高级程序设计>>,不懂的地方可以暂时掠过,给自己对javascript有一个大体的印象2. 认认真真的读完这本书:<<编写可维护的javascript>>,从编码规范,技巧,模式,等各个方面深入体会javascript3. 重新读一遍<<Javascript高级程序设计>&

4.弹出层组件的实现与封装

1. 在这个项目中,弹出层组件出现的方式很多,主要有以下三种      这三种的主要区别在于:是否需要蒙版.是否有蒙版颜色.蒙版的位置是在底部还是随这操作变化位置 1. 位于底部固定的弹出层 代码如下: <template> <view style="z-index:999;overflow:hidden" v-if="avalilable"> <!-- 蒙版 --> <view class="position-f

JavaScript学习总结(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例

JavaScript学习总结(一)--延迟对象.跨域.模板引擎.弹出层.AJAX示例 目录 一.AJAX示例 1.1.优点 1.2.缺点 1.3.jQuery AJAX示例 二.延迟对象(Deferred) 2.1.回调函数 2.2.deferred.done 三.跨域 3.1.什么是跨域 3.2.JSONP跨域 3.3.jQuery使用JSONP跨域 3.4.跨域资源共享(CORS) 3.5.小结 四.弹出层 五.模板引擎 5.1.Hello World 5.2.方法 5.3.与AJAX结合应

自己封装的弹出层插件

html代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="

yii弹出层

Yii弹出层,包装了JQuery的JDialog,使用很方便.Yii组件功能太强大,强大到无法自拔 $this->beginWidget('zii.widgets.jui.CJuiDialog', array( 'id' => 'mydialog', 'options' =>array( 'title' => '管理', 'width' => '600px', 'height' => 'auto', 'autoOpen' => true, ), )); $form

制作一个有模态的弹出层

参考慕课网课程<分享:阿当大话西游之WEB组件> 定制不同的皮肤可通过对元素添加或减少class类来实现. 首先,模态是指如下图部分的灰色背景部分:(灰色部分不可点击) 然后,要记住,模态要加在当前页面的上面,以及当前操作框(通常是一个弹出层)的下面 所谓上面,下面是指: 如果模态(通常是一个div)的定位是fixed(固定定位)的,那么它将不占据文档空间, 所以,将其height和width设置为100%,另外,设置left:0;top:0.即为铺满整个屏幕. 然后,在html中,处于此di

jquery弹出层

Ug,一个轻量级的js组件.web弹窗(层)解决方案 .网址:http://ug66.cn/ 效果预览: Ug,简洁的代码.灵活的自定义,您只需简单地调用,即可轻松实现各种弹出效果. Ug,她尽可能地以更少的代码展现出更强健的功能,让您的页面拥有更丰富与便捷的UI体验. Ug.格外注重性能的提升.易用和实用性. 鄙人必须中止“王婆卖瓜”的陈述,因为一切的不足或友好,都需阁下在使用过程中去发现. jquery弹出层,布布扣,bubuko.com

基于layer封装的异步加载分部视图弹出层

背景:之前一直用的artdialog,但是样式不是很好看,后来偶然看到layer,觉得不错,但是对于.net mvc来说,不能像artdialog一样弹出分部视图是很难受的.所以下面的方法就解决了. <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta na