纯JS实现模态框
来源:互联网 发布:php源码 下载站 编辑:程序博客网 时间:2024/06/06 14:15
实现原理
1、使用 js 动态 添加和删除类名 .display-hide { display: none }
控制模态框的弹出和隐藏;
2、使用fixed布局定义最外层的遮掩层;
3、使用document.body.clientWidth
定义了模态框的宽度,使模态框完整显示在窗口。
总结:
1、css布局: 为了使遮掩层能充满窗口,最初在html 标签的样式是 { width:100%;height:100% }
,
遮掩层的样式是{width:100%;height:100%; position: fixed}
。如果弹框代码位于元素之后这种方式是有效的,但是如果弹框代码前面还有一些元素在占位,那么就会无法占满屏幕。因此使用了位置偏移的方法 { position: fixed; left: 0px ; top: 0px ;right: 0px; bottom: 0px }
2、使用js动态插入html元素的几个方法;这次使用的是使用innerHTML
设置自定义的标题和内容;最初使用的时候用了append()
方法,发现该方法插入html语句时会将其变成文本节点输出,而不会解析成html语句;所以应该使用innerHTML
设置。
关于innerHTML
,innerText
,outerHTML
区别:
例如:<div>hello<span>world</span></div>
innerHTML: 指对象标签中所有的包括html标签的内容,但是不包含对象标签本身,即hello<span>world</span>
.
innerText: 指对象标签中所有的但不包括html标签的内容,也不包括对象标签本身,即 helloworld
.
outerHTML: 指对象标签中所有的包括html标签的内容,也包括对象标签本身,即<div>hello<span>world</span></div>
.
这些属性不仅可以读,还可以设置。
使用注意:
在innerHTML中设置值为<script src="foo.js"></script>
,即内联脚本时,该脚本是不会执行的;
在设置innerText值时,会把该对象内的所有元素清空,例如把上例中的innerText= 'hei'
=> <div>hei</div>
兼容性问题
innerHTML所有浏览器兼容;innerText与outerHTML虽然主流浏览器,如谷歌,火狐,IE7-IE11,QQ等都已支持(这里提到的谷歌火狐等都是最新浏览器的版本),但是W3C的标准属性就是innerHTML,因此,尽可能地去使用innerHTML,而少用innerText与outerHTML。
3、浏览器模型
参考: http://www.cnblogs.com/polk6/p/5051935.html
CSS模型参考: http://zh.learnlayout.com/
项目github地址:https://github.com/fishlao/practise/tree/master
- 纯JS实现模态框
- 纯js实现五子棋
- 纯js实现倒计时
- 纯js实现轮播图
- 纯js实现分页
- 纯js实现轮播图
- 纯JS实现分页
- 一个纯js实现树
- 纯js实现波形图
- 【转载】纯js实现分页
- 纯js实现无缝轮播图
- 纯js 实现弹幕效果
- 纯js实现记住密码
- 纯js实现复制粘贴
- 纯JS脚本如何实现日历控件
- 纯js实现俄罗斯方块[效率待优化]
- 纯js实现跨域上传文件
- 纯JS实现动态时间显示
- tomcat使用
- win7 64位安装redis 及Redis Desktop Manager使用
- 清除项目中与svn的关联
- KYLIN基于CDH入门实战(1)之kylin简介
- linux启动tomcat外部浏览器不能访问8080端口解决方案
- 纯JS实现模态框
- iOS方法返回值和参数对应的Type Encodings
- C语言结构体的对齐原则
- 数据结构
- Unicode(UTF-8 UTF-16)之解释说明
- Java ,IO流,文件的分割与合并
- 国内网盘陆续关停,个人免费网盘模式或到尽头
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- Afnetworking访问遇到3840_错误