前提:公司最近做的一个项目列表,然后点击项目,出现背景遮罩层,弹出的数据框需要异步加载数据数据,让这个数据框居中,搞了两天终于总算达到Boss满意的程度,做了半年C/S,反过来做B/S,顿时感到技术还是需要不断使用,不然就是个废,先来一步一步的分析:

点击有背景层,然后有数据框:

1.背景层和数据框都是两个已经在页面中存在的Div,响应点击事件获取参数就可以

 <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="Scripts/jquery-1.7.1.js"> </script>
<script type="text/javascript">
$(function () {
$("#test").click(function () {
var height = $(document).height();
var width = screen.width;
var pWidth = $("#dataDialog").width();
var pHeight = $("#dataDialog").height();
var top = (height - pHeight) / ;
var left = (width - pWidth) / ;
$("#testBg").css({
"width": width,
"height": height,
"display": "block"
});
$("#dataDialog").css({
"top": top,
"left": left,
"display": "block"
}); });
});
</script>
</head>
<body>
<div id="testBg" style="background:black;position:absolute;top:0px;left:0px;z-index:1;display:none;opacity:0.8"></div>
<a href="javascript:void(0);" id="test">背景层测试</a>
<div id="dataDialog"style="background:white;z-index:5;display:none;width:400px;position:absolute;">
<table border="" style="border:1px solid black;border-collapse:collapse;">
<tr><td style="width:100px;">姓名</td><td style="width:300px;">个人简介</td></tr>
<tr><td id="name">小飞象</td><td id="resume">才毕业的菜鸟级别的人,总是犯一些未知活已知的错误,需要给出自己的判断力,加强自己的执行力,你需要不断的去把控自己,给出所有的问题一个正确的解决方式
</td></tr>
</table>
</div> </body>
</html>

背景层的样式style="background:black;position:absolute;top:0px;left:0px;z-index:1;display:none;opacity:0.8"稍微说下(如果你是前端已经很强可以忽略我),background控制背景颜色,opacity设置透明度,两个算是哥俩一块用,top,left设为0背景是整个页面,;position:absolute设为绝对,设为z-index的数值是叠加时候的顺序,小的在下面~

数据框样式style="background:white;z-index:5;display:none;width:400px;position:absolute;"其中z-index比背景层的数值大就行.

2.上面的代码数据框是居中的,没有任何问题,现在需要异步加载一下数据,填充数据后台返回JSON格式的字符串

 <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="Scripts/jquery-1.7.1.js"> </script>
<script type="text/javascript">
$(function () {
$("#test").click(function () {
var height = $(document).height();
var width = screen.width;
$.get("/About.aspx", "type=test&Id=1", function (data) {
var str = JSON.parse(data);
$("#name").html(str.name);
$("#resume").html(str.resume);
});
var pWidth = $("#dataDialog").width();
var pHeight = $("#dataDialog").height();
var top = (height - pHeight) / ;
var left = (width - pWidth) / ;
$("#testBg").css({
"width": width,
"height": height,
"display": "block"
});
$("#dataDialog").css({
"top": top,
"left": left,
"display": "block"
}); });
});
</script>
</head>
<body>
<div id="testBg" style="background:black;position:absolute;top:0px;left:0px;z-index:1;display:none;opacity:0.8"></div>
<a href="javascript:void(0);" id="test">背景层测试</a>
<div id="dataDialog"style="background:white;z-index:5;display:none;width:400px;position:absolute;">
<table border="" style="border:1px solid black;border-collapse:collapse;">
<tr><td style="width:100px;">姓名</td><td style="width:300px;">个人简介</td></tr>
<tr><td id="name">小飞象</td><td id="resume">才毕业的菜鸟级别的人,总是犯一些未知活已知的错误,需要给出自己的判断力,加强自己的执行力,你需要不断的去把控自己,给出所有的问题一个正确的解决方式
</td></tr>
</table>
</div> </body>
</html>

死就死在这个上面,这个页面出现的数据框是无法居中的,一直搞了很久,各位有看出问题的直接可以闪人,没看出来可以自己思考下,没想出来直接看第三段~

3.柳暗花明,尘归尘,土归土,代码的顺序,看源码:

 <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="Scripts/jquery-1.7.1.js"> </script>
<script type="text/javascript">
$(function () {
$("#test").click(function () {
var height = $(document).height();
var width = screen.width;
$.get("/About.aspx", "type=test&Id=1", function (data) {
var str = JSON.parse(data);
$("#name").html(str.name);
$("#resume").html(str.resume);
var pWidth = $("#dataDialog").width();
var pHeight = $("#dataDialog").height();
var top = (height - pHeight) / ;
var left = (width - pWidth) / ;
$("#testBg").css({
"width": width,
"height": height,
"display": "block"
});
$("#dataDialog").css({
"top": top,
"left": left,
"display": "block"
}); }); });
});
</script>
</head>
<body>
<div id="testBg" style="background:black;position:absolute;top:0px;left:0px;z-index:1;display:none;opacity:0.8"></div>
<a href="javascript:void(0);" id="test">背景层测试</a>
<div id="dataDialog"style="background:white;z-index:5;display:none;width:400px;position:absolute;">
<table border="" style="border:1px solid black;border-collapse:collapse;">
<tr><td style="width:100px;">姓名</td><td style="width:300px;">个人简介</td></tr>
<tr><td id="name">小飞象</td><td id="resume">才毕业的菜鸟级别的人,总是犯一些未知活已知的错误,需要给出自己的判断力,加强自己的执行力,你需要不断的去把控自己,给出所有的问题一个正确的解决方式
</td></tr>
</table>
</div> </body>
</html>

Ajax是异步,就是Ajax程序执行的同时,Ajax程序之后的代码也在同时执行,虽然嘴上天天说着异步,只有真正用到的时候才感到异步的真不是说着玩的,想起一句老话,纸上得来终觉浅,绝知此事要躬行~

最后小插曲:

 string name = "小飞象";
string resume = "才毕业的菜鸟级别的人,总是犯一些未知活已知的错误,需要给出自己的判断力,加强自己的执行力,你需要不断的去把控自己,给出所有的问题一个正确的解决方式";
StringBuilder sb = new StringBuilder();
sb.AppendFormat("{ \"name\":\"{0}\",\"resume\":\"{1}\"}", name, resume);
Console.WriteLine(sb.ToString());
Console.ReadKey();

在将字符串转成JSON格式遇到的一个问题,开始没看明白,知道这段代码错误的也可以跳过了,不知道的可以测试一下,写博客还是有好处的,第一篇技术博客,希望对需要的人有帮助,祝大家编程愉快~

By

Samll  Fly   Elephant

遮罩层中的相对定位与绝对定位(Ajax)的更多相关文章

  1. CSS中的相对定位和绝对定位

    1.元素的position属性的值默认为static 就是没有定位,元素出现在正常的文档流中,,这个时候你给这个元素设置的left,right,bottom,top这些偏移属性都是没有效果的, 使用相 ...

  2. css 中的相对定位和绝对定位

    1.默认不写position的话,值为static. 2.相对定位:相对于元素自己本身的位置偏移,虽然位置偏移,但元素本身占据的空间并不释放. 3.绝对定位:相对于离它最近的,position不为st ...

  3. 辛星和你彻底搞清CSS中的相对定位和绝对定位

    前面我在解读CSS中也说过了关于相对定位和绝对定位的问题.无奈还是有些童鞋表示迷茫,于是另开一篇博客,来具体解读相对定位和绝对定位.希望可以以我的点点星光,让后来者少走弯路. 所谓相对定位,就是设置为 ...

  4. 用JavaScript实现CheckBox的全选取消反选,及遮罩层中添加内容

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. div中的相对定位与绝对定位

    1.position:relative; 如果对一个元素进行相对定位,首先它将出现在它所在的位置上.然后通过设置垂直或水平位置,让这个元素“相对于”它的原始起点进行移动.(再一点,相对定位时,无论是否 ...

  6. css中的相对定位与绝对定位的区别

    1.绝对定位 position: absolute;绝对定位:绝对定位是相对于元素最近的已定位的祖先元素(即是设置了绝对定位或者相对定位的祖先元素).如果元素没有已定位的祖先元素,那么它的位置则是相对 ...

  7. CSS网页中的相对定位与绝对定位

    在CSS中有这样的一个指令:(position),在DreamWeaver中文版中翻译为“定位”,常用的属性有两个:relative(相对)与 absolute(绝对).有很多朋友对这条指令的用法还是 ...

  8. css中的相对定位与绝对定位

    之前说过了CSS有三种基本的布局机制:普通流.浮动和绝对定位.除非专门指定,否则所有的框都在普通流中定位.而普通流中元素框的位置由元素在HTML中的位置决定. 相对定位 相对定位实际上被看做普通流定位 ...

  9. Adobe Edge Animate –地球自转动画的实现,类似flash遮罩层的效果

    Adobe Edge Animate –地球自转动画的实现,类似flash遮罩层的效果 版权声明: 本文版权属于 北京联友天下科技发展有限公司. 转载的时候请注明版权和原文地址. 目前Edge的功能尚 ...

随机推荐

  1. Xamarin iOS教程之页面控件

    Xamarin iOS教程之页面控件 Xamarin iOS 页面控件 在iPhone手机的主界面中,经常会看到一排小白点,那就是页面控件,如图2.44所示.它是由小白点和滚动视图组成,可以用来控制翻 ...

  2. zoj 3644 记忆化搜索

    题目:给出一个有向图,从1到n,每个结点有个权值,每走一步,分值为结点权值的LCM,而且每一步的LCM都要有变化,问到达N的时候分值恰好为K的路径有多少条 记忆化搜索,虽然做过很多了,但是一直比较慢, ...

  3. FireDAC 下的 Sqlite [9] - 关于排序

    SQLite 内部是按二进制排序, 可以支持 ANSI; FrieDAC 通过 TFDSQLiteCollation 支持了 Unicode 排序, 并可通过其 OnCompare 事件自定义排序. ...

  4. 玩转ptrace(转)

    下面是转帖的内容,写的很详细.但是不同的linux发行版中头文件的路径和名称并不相同.如在某些发行版中<linux/user.h>就不存在,其中定义的变量出现在<asm/ptrace ...

  5. gitblit.cmd运行自动关闭

    前几天运行gitblit.cmd一直正常,今天运行gitblit.cmd,几秒钟后命令行窗口就自动关闭了,导致无法启动gitblit服务器,查看日志如下: 刚开始以为是防火墙问题,在防火墙中添加了程序 ...

  6. Revit API根据参数类型取得参数的值

    参数的类型string与int取得的方法有所不同,可以封装成一个函数. //得到参数的值 public static string GetParamVal(Document doc, Paramete ...

  7. 解决winform中mdi子窗体加载时显示最大化最小化按钮的方法

    场景:在mid加载子窗体的时候如果指定WindowState为Maximized,加载完成后主窗体会显示最大化.最小化.关闭的按钮图标. 解决方法: 1.更改主窗体FormMain的属性.制定Main ...

  8. delphi实现数字签名

    上周,另一部门需要支援解决数字签名问题.但因为之前也没做过,现学现卖.此方面可参考的中文资料较少,特作分享,方便查阅. 上周,另一部门需要支援解决数字签名问题.但因为之前也没做过,现学现卖.此方面可参 ...

  9. RabbitMQ的应用场景以及基本原理介绍(转)

    本文转自https://blog.csdn.net/whoamiyang/article/details/54954780 1.背景 RabbitMQ是一个由erlang开发的AMQP(Advanve ...

  10. i386、i586、i686、noarch、x86_64

    xxxxxxxxx.rpm   <== RPM的格式,已经经过编译且包装完成的rpm文件. xxxxxx.src.rpm   <== SRPM的格式,包含未编译的源代码信息. 例如rp-p ...