使用JavaScript实现弹出层效果的简单实例


Posted in Javascript onMay 31, 2016

声明

阅读本文需要有一定的HTML、CSS和JavaScript基础

设计

实现弹出层效果的思路非常简单:将待显示的内容先隐藏,在触发某种条件后(如点击按钮),将原本隐藏的内容显示出来。

实现

<!DOCTYPE html>
<html>
<head>
  <title>Window对象</title>
  <meta charset="utf-8">
</head>
<body>
<a href="http://www.baidu.com">百度一下</a>
<button type="button" id="open">打开弹出层</button>
<div style="display: none;background: lightblue;border:1px solid green;" id="toast">     <!--   设置display属性为none以隐藏内容       -->
  <p>这里是弹出层内容</p>
  <button type="button" id="close">关闭弹出层</button>
</div>
<script type="text/javascript">
  var toast = document.getElementById("toast");
  document.getElementById("open").onclick = function(e){      <!--  定义点击事件显示隐藏内容     -->
    toast.style.display = "block";
    toast.style.position = "fixed";
    var winWidth = window.innerWidth;
    var winHeight = window.innerHeight;
    var targetWidth = toast.offsetWidth;
    var targetHeight = toast.offsetHeight;
    toast.style.top = (winHeight - targetHeight) / 2 + "px";
    toast.style.left = (winWidth - targetWidth) / 2 + "px";
  }
  document.getElementById("close").onclick = function(e){        <!--   将显示的内容再次隐藏     -->
    toast.style.display = "none";
  }
</script>
</body>
</html>

显示效果如下:

使用JavaScript实现弹出层效果的简单实例

但是我们可以注意到,在弹出隐藏内容之后我们还是可以通过链接进入百度页面。为了防止这种情况的发生,我们可以提供遮罩层将原先的页面内容全部遮住。代码如下:

<!DOCTYPE html>
<html>
<head>
  <title>Window对象</title>
  <meta charset="utf-8">
</head>
<body>
<a href="http://www.baidu.com">百度一下</a>
<button type="button" id="open">打开弹出层</button>
<div id="cover" style="display: none;position: fixed;width: 100%;height: 100%;top:0px;left:0px;background: gray;">    <!-- 通过遮罩层遮住背景 -->
  <div style="background: lightblue;border:1px solid green;" id="toast">     <!-- 设置display属性为none以隐藏内容       -->
  <p>这里是弹出层内容</p>
    <button type="button" id="close">关闭弹出层</button>

</div>
</div>
<script type="text/javascript">
  var toast = document.getElementById("toast");
  var cover = document.getElementById("cover");
  document.getElementById("open").onclick = function(e){      <!--  定义点击事件显示隐藏内容     -->
    cover.style.display = "block";
    toast.style.position = "fixed";
    var winWidth = window.innerWidth;
    var winHeight = window.innerHeight;
    var targetWidth = toast.offsetWidth;
    var targetHeight = toast.offsetHeight;
    toast.style.top = (winHeight - targetHeight) / 2 + "px";
    toast.style.left = (winWidth - targetWidth) / 2 + "px";
  }
  document.getElementById("close").onclick = function(e){        <!--   将显示的内容再次隐藏     -->
    cover.style.display = "none";
  }
</script>
</body>
</html>

这是再次测试下效果,如下图:

使用JavaScript实现弹出层效果的简单实例

总结

上述内容只是简单实现了弹出层效果,但是通过添加更多的代码也可以在此基础上实现更复杂的功能。

以上这篇使用JavaScript实现弹出层效果的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
浅谈javascript 函数内部属性
Jan 21 Javascript
使用js复制链接中的部分文字的方法
Jul 30 Javascript
JavaScript html5 canvas绘制时钟效果(二)
Mar 27 Javascript
jQuery检查元素存在性(推荐)
Sep 17 Javascript
正则中的回溯定义与用法分析【JS与java实现】
Dec 27 Javascript
AngularJS中的缓存使用
Jan 11 Javascript
微信小程序的动画效果详解
Jan 18 Javascript
Vue.js 60分钟快速入门教程
Mar 28 Javascript
Vue实现一个返回顶部backToTop组件
Jul 25 Javascript
Angular动态绑定样式及改变UI框架样式的方法小结
Sep 03 Javascript
vue权限问题的完美解决方案
May 08 Javascript
详解Angular Karma测试的持续集成实践
Nov 15 Javascript
javascript事件处理模型实例说明
May 31 #Javascript
jQuery基础知识点总结(必看)
May 31 #Javascript
浅谈JavaScript中小数和大整数的精度丢失
May 31 #Javascript
javascript小数精度丢失的完美解决方法
May 31 #Javascript
javascript解决小数的加减乘除精度丢失的方案
May 31 #Javascript
javascript基本语法
May 31 #Javascript
jquery 无限极下拉菜单的简单实例(精简浓缩版)
May 31 #Javascript
You might like
自定义PHP分页函数
2006/10/09 PHP
ADODB类使用
2006/11/25 PHP
MySQL 日期时间函数常用总结
2012/06/12 PHP
php中文字符串截取方法实例总结
2014/09/30 PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
2016/12/09 PHP
php实现页面纯静态的实例代码
2017/06/21 PHP
理解Javascript_12_执行模型浅析
2010/10/18 Javascript
一个简单的js树形菜单
2011/12/09 Javascript
浅谈Sizzle的“编译原理”
2015/04/14 Javascript
JavaScript驾驭网页-获取网页元素
2016/03/24 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
原生JS实现轮播效果+学前端的感受(防止走火入魔)
2016/08/21 Javascript
JavaScript排序算法动画演示效果的实现方法
2016/10/18 Javascript
原生js实现返回顶部缓冲效果
2017/01/18 Javascript
微信小程序 WebSocket详解及应用
2017/01/21 Javascript
webpack打包并将文件加载到指定的位置方法
2018/02/22 Javascript
JavaScript实现瀑布流布局的3种方式
2020/12/27 Javascript
[03:30]DOTA2完美“圣”典精彩集锦
2016/12/27 DOTA
Python爬虫框架Scrapy安装使用步骤
2014/04/01 Python
pycharm 使用心得(六)进行简单的数据库管理
2014/06/06 Python
wxPython窗口的继承机制实例分析
2014/09/28 Python
python实现搜索本地文件信息写入文件的方法
2016/02/22 Python
python使用PIL给图片添加文字生成海报示例
2018/08/17 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
2018/10/29 Python
springboot配置文件抽离 git管理统 配置中心详解
2019/09/02 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
python实现根据文件格式分类
2019/10/31 Python
浅析Python迭代器的高级用法
2020/07/16 Python
中学生家长评语大全
2014/04/16 职场文书
《鹬蚌相争》教学反思
2014/04/22 职场文书
健康教育评估方案
2014/05/25 职场文书
小学端午节活动总结
2015/02/11 职场文书
工作感言一句话
2015/08/01 职场文书
毕业生自我鉴定范文
2019/05/13 职场文书
pytorch通过训练结果的复现设置随机种子
2021/06/01 Python
MySQL查询日期时间
2022/05/15 MySQL