JAVASCRIPT弹出窗口DIV层效果代码

构建.NET动态弹出层控件的全攻略 本文还有配套的精品资源,点击获取 简介:本文介绍如何在.NET框架下设计和实现一个动态生成的弹出层控件。该控件用于创建网页模态对话框,支持用户提示、信息确认和表单填写等场景。通过结合JavaScript、jQuery和服务器端代码,开发者可以灵活地在运行时控制弹出层的显示和隐藏,从而满足多种业务需求。此外,本文还将提供使用lhgdialog库实现弹出层的案例,以及探讨动态H... 阅读详情

在本教程中,我将用最通俗的语言和最简洁的代码给大家演示如何创建一个JavaScript弹出DIV窗口层的效果。

 

创建一个弹出DIV窗口可能是现在网站/网页制作中最常碰到的问题之一。传统的JavaScript弹窗已经不适合目前网站的设计理念了,理由有二:首先,不友好——生硬的弹出对话框且伴随着“哐”的一声对用户体验是个很大的挑战;其次,兼容性不够强——有相当多的浏览器屏蔽了这种JS的Alert()方法。于是,一个良好用户体验的网站需要一种更合理的解决方案——使用很少的HTML代码,很少的CSS代码和几行的JavaScript代码来模拟浏览器默认的弹出窗口(即替换掉默认的Alert()界面和功能)。


实现原理:

 

首先,我们将弹出框中的内容放置在一个特殊的DIV层中,然后默认隐藏它(即初始不可见,使用CSS即可实现)。当用户执行某个动作时——比如点击某个链接或者将鼠标光标移动到某个链接上——我们将之前设置好的隐藏层显示在所有页面元素的最上层(将使用JS操作实现)。此外,我们还将在弹出DIV窗口中设置一个按钮来执行——当用户点击此按钮时关闭窗口的功能。

 

实现过程:

 

就如我上面提到的,我们首先需要创建一个特殊的DIV层,然后我们将弹出窗口的内容放在这个DIV层里面。在这里,我们将其ID命名为“popupcontent ”以区别于其他DIV层。

<div id="popupcontent">这是一个DIV弹窗效果!</div>

 

弹出窗口的CSS修饰代码:

 

接下来,让我们给上面已创建好的这个DIV弹出层进行CSS美化。其中最重要的几个参数分别是:overflow(内容溢出), visibility(可见性) 和position(定位方式)。同时我也给这个窗口效果添加了很多其他代码,但这些只是用于美化,使这个窗口更绚丽。所以,我们最后定义的CSS代码形如:

#popupcontent{
position: absolute;
visibility: hidden;
overflow: hidden;
border:1px solid #CCC;
background-color:#F9F9F9;
border:1px solid #333;
padding:5px;
}

 

从上面CSS代码中的红色部分可以看出:这个DIV层初始默认状态是不可见的。

 

大家可以根据需要对以上代码进行美化,但请务必保留position,visibility,overflow三个属性。

 

JavaScript代码用于触发和显示弹出窗口:

 

这可能是本教程最重要最有趣的地方了。我们接下来会编写2个过程函数分别用于显示和隐藏上面那个DIV弹窗。当然,这两个函数之中会包含一些主体逻辑。

 

过程函数中需要顺序包含的逻辑:

 


  • 计算JavaScript弹出窗口在屏幕上的显示位置(定位); 
  • 在弹出窗口中添加一个状态栏(或按钮),用于关闭打开状态下的窗口; 
  • 显示弹出窗口。

 

为了简单起见,本例中我们设置的显示位置是Top:200,Left:200。即以浏览器内容框的左上角为坐标,向下偏移200PX,向左偏移200PX。

 

弹出窗口的大小我们可以在显示函数的参数中进行设置,包括两个参数:窗口长度和窗口宽度。

 

如果你需要将本例中的代码进行二次开发,有个地方需要特别注意,那就是获取弹出窗口DIV层的DOM对象,我们可以通过下面这个getElementById函数来获取ID名为“Popcontent”的DOM对象。

var popUp = document.getElementById("popupcontent");

 

在获取这个(弹出窗口)DOM对象之后,我们可以在JS代码中修改窗口的相对的位置和窗口大小。

popUp.style.top = "200px";//窗口距离浏览器内容区最上方的偏移值

popUp.style.left = "200px";//窗口距离浏览器内容区最左边的偏移值

popUp.style.width = w + "px";//窗口的宽度

popUp.style.height = h + "px";//窗口的高度

 

接下来,我们需要给窗口添加一个“关闭”按钮,用于在窗口开启状态下关闭这个窗口。要完美的实现这一功能,首先我们需要声明一个全局变量,用于存储弹出窗口DIV中的内容。这是因为,如果你在一个页面中显示多个内容不同的弹出窗口,你不需要将按钮重复的复制到这些DIV层中,这样就简化了行为逻辑:

if (baseText == null) baseText = popUp.innerHTML;

   popUp.innerHTML = baseText +

      "<div id=\"statusbar\"><button onclick=\"hidePopup();\">Close window <button></div>";

 

最后一个需要注意的地方是这个“关闭”按钮的定位问题。这个很容易实现,设置一下这个按钮对象的向上的空白边即可(空白边的数值设置成稍小于整个弹出窗口的DIV高度即可)。

 

至此,所有的行为逻辑讲解完毕,最后的弹窗显示函数的完整代码如下:

var baseText = null; 

function showPopup(w,h){     
var popUp = document.getElementById("popupcontent");      
popUp.style.top = "200px";     
popUp.style.left = "200px";     
popUp.style.width = w + "px";     
popUp.style.height = h + "px";      
if (baseText == null) baseText = popUp.innerHTML;     
popUp.innerHTML = baseText + "<div id=\"statusbar\"><button onclick=\"hidePopup();
\">Close window<button></div>";      
var sbar = document.getElementById("statusbar");     
sbar.style.marginTop = (parseInt(h)-40) + "px";     
popUp.style.visibility = "visible";
}

 

隐藏弹出窗口:

 

隐藏弹出窗口的过程就相当简单了。只需要首先获取弹出窗口那个DIV的DOM对象,然后将其属性设置成“隐藏”即可。

function hidePopup(){
var popUp = document.getElementById("popupcontent");
popUp.style.visibility = "hidden";
}

 

拓展HTML代码最终实现弹窗效果:

 

我们需要做的就是在某个链接或者按钮的对应事件上添加JS函数“showPopup() ”即可。

比如,需要在鼠标移动到某连接上时弹出窗口:

<a href="#" onmouseover="showPopup(300,200);" >Open popup</a>

 

需要在鼠标点击某个连接时弹出窗口:

<a href="#" onclick="showPopup(300,200);" >Open popup</a>

html+css+js实现点击弹出窗口效果 用html+css+js/jquery实现的点击按钮弹出一个层窗口效果。注释部分使用js实现的,script部分则是jquery实现的,效果更好一些。可以把jquery部分注释掉来看js的效果 立即下载

相关推荐

html5 css3简单的遮罩弹出框动态效果

html5 css3简单的遮罩弹出框动态效果

JavaScript弹出窗口DIV层效果代码

创建一个弹出DIV窗口可能是现在网站/网页制作中最常碰到的问题之一。传统的JavaScript弹窗已经不适合目前网站的设计理念了,理由有二:首先,不友好——生硬的弹出对话框且伴随着“哐”的一声对用户体验是个很大的挑战;其次,兼容性不够强——有相当多的浏览器屏蔽了这种JS的Alert()方法。于是,一个良好用户体验的网站需要一种更合理的解决方案——使用很少的HTML代码,很少的CSS代码和几行的Ja...

my_dif的专栏 729

NET弹出层弹出div

aspnet 弹出div层,并把弹出层上的值赋值给页面。

ASP.NET—013:实现带控件的弹出层(弹出框)

在页面中用到弹出新页面的情况比较多的,一般来说都是使用JS方法showModalDialog("新页面相对路径+?参数1&参数2",window,"新页面样式");然后会新弹出一个模态的page页。而在有些时候,仅仅是显示一些单一的、少量的数据,或者一些简单的操作时。就没必要使用新弹出页面了。此时,最好使用弹出层,也就是数据还是显示在当前页面的某个控件上,然后通过JS方法实现达到弹出的目的。看下面

杨友山 1万+

IntelliJ IDEA 中git使用说明书

IntelliJ IDEA 中git使用说明书

junyang2012的博客 5389

富斯遥控器-ros机器人控制

富斯遥控器-ros机器人手柄控制

zkh7758的博客 1699

在ASP.NET中使用IFRAME+DIV,可以实现在同一页面使用弹出(模态)窗口

  我们经常要在程序的人机交互中用到弹出(模态)窗口,但在B/S开发中,这一点就非常不容易了, 虽然我们可以用window.showModalDialog,或者 window.open 这类型的脚本函数实现,但是,非常不好用,一方面涉及回传值,另一方面不能够很好的实现父页面与子页面的交互,一般只能通过在脚本中实现,方可交互,而且使用这种方式,会产生多个页面,对用户操作不友好.     基于上述情况

Wind_Lam的专栏 3837

GD32H7 SPI驱动实战:手把手教你用SPI3连接外部Flash(W25Q128)并实现读写

本文详细介绍了基于GD32H7系列MCU的SPI3接口驱动W25Q128外部Flash的全流程开发指南。从硬件设计、引脚配置到SPI3外设深度配置,再到底层通信函数实现和高级功能优化,提供了完整的解决方案。特别针对高速读取、DMA传输和信号完整性等关键环节进行了优化,确保系统在-40℃~85℃范围内稳定工作。

weixin_28729205的博客 380

【JavaScript】简单实现弹出窗口div

JavaScript实现弹出窗口 思路 总体使用两个div,一个作为底层展示,一个做为弹出窗口; 两个窗口独立进行CSS设计,通过display属性进行设置现实与隐藏,此处建议使用display属性而不是visibility属性,visibility:hidden可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间,影响布局; 在js内设计两个onclick事件,分别指定函数,分别为开启弹窗和关闭弹窗。 一、设置两个div <html> <title>弹出窗口</t

Lee的博客 2万+

有限元缺陷:剪切锁死

有限元缺陷:剪切锁死

wsxww11的博客 5186

无人驾驶感知融合——横摆角速度的多源估计算法解析

本文深入解析了无人驾驶感知融合中的横摆角速度多源估计算法,详细介绍了轮速差法、侧向加速度法、曲率法和惯性传感器直读法四种计算方法及其优缺点。通过卡尔曼滤波实战案例,展示了多源融合算法在提升精度和稳定性方面的显著优势,并探讨了工程实践中的时间对齐、坐标系统一等关键问题。

weixin_31458015的博客 462

JavaScript弹出窗口DIV层效果代码 [

document对象]   该对象是window和frames对象的一个属性,是显示于窗口或框架内的一个文档。   属性   alinkColor 活动链接的颜色(ALINK)   anchor 一个HTMI锚点,使用#lt;A NAME=#gt;标记创建(该属性本身也是一个对象)   anchors array 列出文档锚点对象的数组(#lt;A NAME=#gt;)(该属

cui_angel的专栏 3065

保姆级教程:DBeaver社区版安装与驱动配置(附阿里云镜像解决下载超时)

本文提供DBeaver社区版的保姆级安装教程,涵盖版本选择、安装路径设置到驱动配置优化。特别针对国内用户遇到的下载超时问题,详细介绍了如何配置阿里云镜像加速驱动下载,确保高效连接MySQL等主流数据库。

weixin_30430169的博客 479

Jquery教程:JS弹出窗口DIV层效果代码

转载自 分享   使用DIV弹出窗口来动态显示内容的原理:首先采用CSS和HTML隐藏弹窗中的内容,然后利用JavaScript(本教程中是JQuery)来动态显 示它们。这种效果不仅能够充分利用有限的版面空间,而且能够提高用户体验;更重要的是,它并不影响SEO效果(因为

magic1dolphin(猫猫)的专栏 1327

2021.07.05【R语言】丨预测lncRNA并绘制venn图

目录摘要环境与方法依赖工具预测工具绘制工具使用命令预测lncRNA统计noncoding_ID绘制Venn图结果展示总结 摘要 接到一个单样品测lncRNA数据的项目,正好拿来练练手,梳理一下lncRNA流程。这里记录预测lncRNA并生成venn图的过程 环境与方法 R version 3.6.3 (2020-02-29) 依赖工具 预测工具 CPC2 CNCI Pfam CPAT 绘制工具 R:VennDiagram 使用命令 预测lncRNA CPC2 #更换env conda activate py

2035

【RT-DETR有效改进】计算训练好权重文件对应的FPS、推理每张图片的平均时间(科研必备)

本文给大家带来的改进机制是利用我们训练好的权重文件计算FPS,同时打印每张图片所利用的平均时间,模型大小(以MB为单位),同时支持batch_size功能的选择,对于轻量化模型的读者来说,本文的内容对你一定有帮助,可以清晰帮你展示出模型速度性能的提升以及轻量化的效果(模型大小),对于以提高精度为目的的读者本文也能够帮助大家展示出现阶段的模型速度指标。所以本文的内容是十分有用的机制,对于大家发表论文来说,下面的图片为运行后的效果可以看到,该有的指标均已打印(本文内容为我独家创新,全网无第二份)下面是效果图和文

Snu77的博客 3628

js控制div层的叠加

  收藏({$count}个)             添加收藏                                                                  全部({$count})                钢琴谱({$count_pu})                钢琴曲

听海Movie的专栏 1823

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

html5 渐变弹出框,JavaScript实现弹出DIV层同时页面背景渐变成半透明效果

本文实例讲述了JavaScript实现弹出DIV层同时页面背景渐变成半透明效果。分享给大家供大家参考,具体如下:/p>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">JavaScript弹出DIV层,页面背景渐变成半透明html,body{font-size:12px;margin:0px;height:100%;}....

weixin_28909295的博客 457

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

html点击一个文字显示提示框,点击文字弹出一个DIV层窗口代码

点击文字弹出一个DIV层窗口代码.black_overlay{display: none;position: absolute;top: 0%;left: 0%;width: 100%;height: 100%;background-color: black;z-index:1001;-moz-opacity: 0.8;opacity:.80;filter: alpha(opacity=88);}...

weixin_33426866的博客 3924

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

点击文字弹出一个DIV层窗口代码

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>点击文字弹出一个DIV层窗口代码</title> <style> .black_overlay{ ...

weixin_33919941的博客 258

2018.9.26表格中图片,单击后放大

html 布局 <!--标准开头:--> <td width="200"> //此处是图片分割,我用的是123.jpg & 234.jpg 存储两个图片的id 然后用explode()函数打散成数组用下标表示图片的id.<?php$tupian=$row['goodsimg'];$arr=explode('&',$tupian);$tupian...

weixin_30698527的博客 189

php代码div自动弹出窗口,点击链接弹出div层的实现代码一例

1,js代码部分复制代码 代码示例:var popup_target;var popup_mouseposX;var popup_mouseposY;// ----- popup_exit --function popup_exit(str){if(str == 'init'){//document.getElementById("tableid").attachEvent("onclick",p...

weixin_42299873的博客 479
上一篇: VisualStudio2008注册表删除最近的项目,最近的文件
下一篇: 基于文档流解读html元素的(css)定位形式
javagtcpp
博客等级 码龄15年 4粉丝 66原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值