[原]一步一步自己制作弹出框
说到javascript弹出框的制作,将其实现步骤分开,其实很容易。
下面,将拆分页面弹出框的制作步骤。
首先,准备编辑工具(废话),其实,您可以使用notepad..嘿嘿。
弹出框的组成结构:
1.一个页面遮罩层。
2.一个div容器,用来包含整个弹出框的布局。
3.弹出框的菜单头(在弹出框的顶部,一般用来放置关闭按钮等)
4.弹出页面的iframe,将其src设置为需要链接的url.
弹出层组成结构讲解完毕,开始实现弹出层对象。
首先,先实现常见的公共函数
{return typeof id=="string"?document.getElementById(id):id;
}//获取页面指定tagName的对象var $E=function(tagName)
{return document.getElementsByTagName(tagName)[0];
}//创建对象 通过原型的继承function New(aClass,aParams)
{function new_()
{
aClass.initialize.apply(this,aParams);
}
new_.prototype=aClass;return new new_();
}
好了 公共函数实现完毕,进入最关键的对象的创建了。
还是一步步来吧,首先,实现创建遮罩层的函数
{var mask=$$("overlay_div");if(mask==null)
{
mask=document.createElement("div");//遮罩层div mask.setAttribute("id","overlay_div");//设置id为overlay_div mask.className="light_overlay";//设置高度和宽度 mask.style.height=window.screen.availHeight>document.body.scrollHeight?window.screen.availHeight:document.body.scrollHeight;
mask.style.width=window.screen.availWidth>document.body.scrollWidth?window.screen.availWidth:document.body.scrollWidth;
$E("body").appendChild(mask);
}return mask;
}
遮罩层创建完毕
就开始创建一个div容器 并将设置容器的内部html代码
{var container=$$("container_div");if(container==null)
{
container=document.createElement("div");
container.setAttribute("id","container_div");
container.style.height=_height;
container.style.width=_width;var v_left=document.body.clientWidth/2-_width/2;var v_top=document.body.scrollTop+document.body.clientHeight/2-_height/2;//设置容器距离顶部和左边的宽度。 container.style.top=v_top;
container.style.left=v_left;
container.className="light_container";//在容器内部添加一个菜单头和一个指向给定url的iframe container.innerHTML="<div class='light_header'><a class='light_close'
οnclick='closeDialog()'>关闭</a></div><iframe frameborder='0' scrolling='no'
style='border:0;width:100%;height:98%;' src='
"+_url+"'></iframe>"$E("body").appendChild(container);}return container;
}
给出关闭弹出层的函数,就是将建立的两个层隐藏就可以了。
{
$$("container_div").style.display="none";
$$("overlay_div").style.display="none";
}
最后一步 就是显示弹出层对象了。我们需要将前面两函数联合起来
{this._mask=makeMask();this._container=makeContent(width,height,url);this._mask.style.display=display==""?"none":display;this._container.style.display=display==""?"none":display;
}
好了 基本的框架已经搭建出来了 现在给出css样式代码
然后我们直接调用
displayLayer(400,300,'show.html',"block");函数就可以显示弹出层了。
其实,我们可以将弹出层看成一个对象,达到javascrpt对象的封装,利于复用.
函数已经有了,我们只需要将函数整合就可以了,代码如下:
initialize:function(url,width,height)
{this._url=url;this._width=width;this._height=height;this._mask=this.makeMask();this._container=this.makeContent();
},
makeMask:function()
{var mask=$$("overlay_div");if(mask==null)
{
mask=document.createElement("div");
mask.setAttribute("id","overlay_div");
mask.className="light_overlay";
mask.style.height=window.screen.availHeight>document.body.scrollHeight?window.screen.availHeight:document.body.scrollHeight;
mask.style.width=window.screen.availWidth>document.body.scrollWidth?window.screen.availWidth:document.body.scrollWidth;
$E("body").appendChild(mask);
}return mask;
},
makeContent:function()
{var container=$$("container_div");if(container==null)
{
container=document.createElement("div");
container.setAttribute("id","container_div");
container.style.height=this._height;
container.style.width=this._width;var v_left=document.body.clientWidth/2-this._width/2;var v_top=document.body.scrollTop+document.body.clientHeight/2-this._height/2;
container.style.top=v_top;
container.style.left=v_left;
container.className="light_container";
container.innerHTML="<div class='light_header'><a class='light_close'
οnclick='closeDialog()'>关闭</a></div><iframe frameborder='0' scrolling='no'
style='border:0;width:100%;height:98%;' src='
"+this._url+"'></iframe>"$E("body").appendChild(container);}return container;
},
displayLayer:function(display)
{this._mask.style.display=display==""?"none":display;this._container.style.display=display==""?"none":display;
}
}
当我们需要使用弹出框的时候就可以直接New一个对象
如下:
//创建对象
var lightbox_example=New(LightBox,[url,width,height]);
//显示弹出层
lightbox_example.displayLayer("block");
您可以点击此处 下载代码
转载于:https://www.cnblogs.com/trampt/archive/2010/08/10/1796780.html
[原]一步一步自己制作弹出框相关推荐
- 使用popwindow制作弹出框与获得焦点弹出软键盘
如果是声明一各类 public class VideoFilterDialog extends PopupWindow 那么在构造方法中添加: conentView = inflater.inflat ...
- VUE|利用父子组件制作弹出框
博客主页:JavaProfessional 一个专注于Java的博主,致力于使用通俗易懂的语句讲解内容,期待您的关注! 文章目录 点击显示弹框 父组件 子组件 点击关闭弹框 子组件 父组件 效果 好文 ...
- android制作弹出框样式,Android Dialog 弹出框 自定义 样式
可以去除系统的Dialog的黑边,而且Dialog的样式和布局完全一样 可以是不规则图形 这个功能不是太难 ,不多说直接上代码 先是根据系统的Theme创建一个自己的Theme 在R.styles.x ...
- Android仿IOS封装通用的弹出框Dialog和底部弹出列表选择框 仿美团顶部条件筛选框 附自定义ViewGroup
弹出框 背景 提示与询问弹出框 实现 使用 列表选择框 实现 使用 顶部条件筛选框 实现 自定义ViewGroup 使用 总结 背景 鉴于Android提供的默认弹出框很一般,IOS的弹出框样式还不错 ...
- html alter自动弹出,javascript封装alert()弹出框
由于各个浏览器之间的差异,弹出框不一样,这有影响页面的布局,所以自己就用原声js封装了一个alert弹出框,希望对有需求的有所帮助... ` alert function ok() { alert(' ...
- HTML+CSS实现带按钮的弹出框
带按钮的弹出框 HTML部分 CSS样式 JS部分 效果图 补充知识:关于rgba属性 HTML部分 <button id="showPopup" onclick=" ...
- popup弹出html页面,Popup弹出框绑定添加数据事件(步奏详解)
这次给大家带来Popup弹出框绑定添加数据事件(步奏详解),Popup弹出框绑定添加数据事件的注意事项有哪些,下面就是实战案例,一起来看一下. 逻辑 窗口P1中显示一组数据,并提供一个添加按钮 点击按 ...
- 用Dreamware制作弹出菜单
弹出菜单在网页制作中是一种非常常用的菜单方式,这种菜单不但制作简单,而且效果也很好. 效果说明 本实例所要完成的效果是当鼠标移动到文字上时,就会弹出一个漂亮的菜单,如下图所示. 弹出菜单在网页制作中是 ...
- aardio - 使用customPlus库制作弹出列表
customPlus库非常强大,但是很多人可能不会用. 下面演示如何使用customPlus库制作弹出列表: 效果一: 代码一: import win.ui; import fonts.fontAwe ...
最新文章
- 【MediaPipe】(4) AI视觉,远程手势调节电脑音量,附python完整代码
- 下拉列表控制文本框的个数思路
- 手机连接投影机的步骤_投影机和电视机怎么选?看这一篇就够了!
- 德国公司宣布研制出新冠病毒快速检测试剂 2.5小时出结果
- 组件 -——SUl Mobile
- Spring Boot教程(7) – 直观地理解Spring容器
- linux c++ 多进程初步01
- Win10右键没有压缩选项的解决教程
- linux shell学习-1
- 浅谈SaaS应用开发的难度
- spark读取gz文件与parquet文件
- 逻辑斯蒂回归和感知机模型、支持向量机模型对比
- 随机过程(二):更新过程的详细理解
- 中国移动(ECIA)云网工程师技术知识-立哥技术
- 多恩布什《宏观经济学》第十三版笔记和课后答案
- js月份的计算公式_JS获取指定月份的天数几种方法
- 半双工通信是指c语言,Linux下C语言实现半双工的UDP通信
- matlab小波分析信号消除噪声函数,小波分析的语音信号噪声消除方法
- 其他状态(非Buff/Debuff、异常状态的状态)
- 【敏捷5.2】用户故事的层次和用户故事地图