使用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 关闭IE6、IE7
Jun 01 Javascript
Jquery升级新版本后选择器的语法问题
Jun 02 Javascript
JS网页播放声音实现代码兼容各种浏览器
Sep 22 Javascript
js propertychange和oninput事件
Sep 28 Javascript
全系IE支持Bootstrap的解决方法
Oct 19 Javascript
轻松掌握JavaScript享元模式
Aug 27 Javascript
jquery操作ID带有变量的节点实例
Dec 07 Javascript
前端面试知识点锦集(JavaScript篇)
Dec 28 Javascript
angular2倒计时组件使用详解
Jan 12 Javascript
vue-router跳转页面的方法
Feb 09 Javascript
2种简单的js倒计时方式
Oct 20 Javascript
React Native AsyncStorage本地存储工具类
Oct 24 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将文本文件转换csv输出的方法
2014/12/31 PHP
php实现批量修改文件名称的方法
2016/07/23 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
2017/05/02 PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
2018/05/23 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
2018/10/14 PHP
swoole_process实现进程池的方法示例
2018/10/29 PHP
PHP swoole和redis异步任务实现方法分析
2019/08/12 PHP
有关PHP 中 config.m4 的探索
2020/08/26 PHP
几个高效,简洁的字符处理函数
2007/04/12 Javascript
Javascript中的几种URL编码方法比较
2015/01/23 Javascript
JavaScript中的关联数组问题
2015/03/04 Javascript
使用纯javascript实现经典扫雷游戏
2015/04/23 Javascript
js密码强度检测
2016/01/07 Javascript
jQuery实现获取元素索引值index的方法
2016/09/18 Javascript
JS实现数组去重,显示重复元素及个数的方法示例
2019/01/21 Javascript
JavaScript 中判断变量是否为数字的示例代码
2020/10/22 Javascript
PHP webshell检查工具 python实现代码
2009/09/15 Python
Python中__new__与__init__方法的区别详解
2015/05/04 Python
简单实现python爬虫功能
2015/12/31 Python
python中日志logging模块的性能及多进程详解
2017/07/18 Python
教你用Python写安卓游戏外挂
2018/01/11 Python
zookeeper python接口实例详解
2018/01/18 Python
django 发送手机验证码的示例代码
2018/04/25 Python
Python选择网卡发包及接收数据包
2019/04/04 Python
python操作cfg配置文件方式
2019/12/22 Python
Python处理mysql特殊字符的问题
2020/03/02 Python
Python实现封装打包自己写的代码,被python import
2020/07/12 Python
C语言中break与continue的区别
2012/07/12 面试题
shell程序中如何注释
2012/01/28 面试题
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
竞选班长自荐书范文
2014/03/09 职场文书
党员创先争优公开承诺书
2014/03/28 职场文书
工作评语大全
2014/04/26 职场文书
2015年生产部工作总结范文
2015/05/25 职场文书
原来实习报告是这样写的呀!
2019/07/03 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书