前提:公司最近做的一个项目列表,然后点击项目,出现背景遮罩层,弹出的数据框需要异步加载数据数据,让这个数据框居中,搞了两天终于总算达到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. python 字典相关操作

    字典 字典的增删改查 字典的创建方式: # 创建字典类型 info = { 'name':'李白', 'age':'25', 'sex':'男' } msg = { 'user01':'Longzel ...

  2. BZOJ.2660.[BJOI2012]最多的方案(DP)

    题目链接 首先我们知道: 也很好理解.如果相邻两项出现在斐波那契表示法中,那它们显然可以合并. 所以我们能得到\(n\)的斐波那契表示,记\(pos[i]\)为\(n\)的斐波那契表示法中,第\(i\ ...

  3. android的AsyncTask.get()方法会阻塞UI线程

    AsyncTask.get()方法, 是有阻塞UI的能力的.

  4. [TC14088]LimitedMemorySeries1

    [TC14088]LimitedMemorySeries1 题目大意: 给定长度为\(n(n\le5\times10^6)\)的数组\(X\),询问不超过\(q(q\le100)\)次,每次询问第\( ...

  5. Django插件之Django-hosts的应用

    Django插件之Django-hosts的应用 前因 网站移动端的域名是m.example.com,最开始只是在nginx做了映射,将m.example.com映射到example.com/m/下面 ...

  6. 【转载】CMenu自绘---钩子---去除边框

    使用默认的CMenu菜单类或者继承CMenu实现的菜单扩展类,在显示的时候最外层都会有边框出现,或者说是具有3D外观(菜单阴影不算),当改变菜单背景色或者需要加个边框线时就会看上去很不美观.看过很多菜 ...

  7. Gym 100646 Problem E: Su-Su-Sudoku 水题

    Problem E: Su-Su-Sudoku/center> 题目连接: http://codeforces.com/gym/100646/attachments Description By ...

  8. Spring boot整合jsp

    这几天在集中学习Spring boot+Shiro框架,因为之前view层用jsp比较多,所以想在spring boot中配置jsp,但是spring boot官方不推荐使用jsp,因为jsp相对于一 ...

  9. FireDAC 下的 Sqlite [6] - 加密

    主要就是设置 TFDConnection 的两个链接参数: Password, NewPassword, 非常简单. const dbPath = 'C:\Temp\SQLiteTest.sdb'; ...

  10. 打通Linux脉络系列:进程、线程和调度

    http://edu.csdn.net/huiyiCourse/series_detail/60 http://edu.csdn.net/mycollege