封装弹窗 html

<head>
<script src="jquery.js"></script>
<script src="tc.js"></script>
<title>tc</title>
<link href="tc.css" rel=“stylesheet” type=“text/css”/>
</head>
<body>
<div><input id='tc' type='button' value='弹窗'</div>
</body>
</html>
<script type='text/javascript'>
$(document).ready(function(e){
var button="<input id='qd' type='button' value='确定'/>";
$("#tc").click(function(){
var tc= new Window({
width:400,
height:300,
left:150,
top:200,
buttons:button,
title:'tc',
content:'hello world',
isMask:true,
isDrag:true,
}) })
}) </script>

css 文件

#zhuti{
position:absolute;
background-color:#999999;
overflow:hidden;
z-index:4;
border-radius:5px;
} .title
{
padding:1px;
background-color:#6699FF;
vertical-align:middle;
heigth:35px;
width:100%;
line-heigth:35px;
text-indent:1 em;
} .close
{
float:right;
width:35px;
heigth:35px;
font-weight:bold;
line-height:35px;
vertical-align:middle;
color:#FFFFFF;
font-size:18px;
} .close:hover
{
cursor:pointer;
} .content
{
padding:3px;
text-indent:1 em;
padding-top:10px;
background-color:#fff;
} .btnx{
height:40px;
width:100%;
text-indent:1 em;
background-color:#0066cc;
} #zz{
width:100%;
heigth:100%
opacity:0.4;
display:block;
background-color:#333333;
z-index:1;
position:absolute;
top:0px;
left:0px;
}

tc.js文件   红色字体 中英混淆

var Window = function(config)//js封装类的一种方式 var Window = function(){}  config 参数 jason 数据类型常用作封装类的配置参数
{
//初始化接受参数 json取值方式 config.width
this.config={
width:config.width||300,
height:config.heigth||200,
left:config.left||300,
top:config.top||300,
buttons:config.buttons ||"",
title:config.title||"标题",
content:config.content||"内容",
isMask:config.isMask==false?false:config.isMask ||true,
isDrag:config.isDrag==false?false:config.isDrag ||true,
}
// 加载弹出窗体 造div 注意里面变量连接方式
var zhuti = "<div class='zhuti' id='zhuti' style='width:"+this.config.width+"px; height:"+this.config.heigth+"px; left:"+this.config.left+"px; top:"+this.config.top+"px;'></div>"; //找到body对象追加主体div
$("body").append(zhuti);
//加载弹窗标题
var content="<div id='title' class='title'>"+this.config.title+"<div id='close' class='close'>X</div></div>";
//加载弹窗内容
var nrh =this.config.heigth-80;
content = content+"<div id='content' class='content' style='width:100%; heigth:"+nrh+"px'>"+this.config.content+"</div>";
//加载按钮
content = content+"<div id='btnx' class='btnx'>"+this.config.buttons+"</div>"; //将content拼接追加主体
$("#zhuti").html(content); //创建遮罩层
if(this.config.isMask)
{
var zz ="<div id='zz'></div>";
$("body").append(zz);
$("#zz").css('display','block');
} //拖动事件
var maxX = $(window).width()-this.config.width;
var maxY = $(window).heigth()-this.config.heigth;
var minX=0; var minY=0;
if(this.config.isDrag)
{
$("title").bind('mousedown',function(e){
var endX= 0;//移动后的x坐标
var endY= 0;//移动后的y坐标
var startX=parseInt($("#zhuti").css("left"));//弹出初始x坐标
var startY=parseInt($("#zhuti").css("top"));//弹出初始 y 坐标 var downX= e.clientX;//鼠标按下 x 坐标
var downY= e.clientY;//鼠标按下 x 坐标 //绑定鼠标移动事件
$("body").bind("mousemove",function(es){
endX = es.clientX -downX+startX;//x坐标移动
endY = es.clientY -downY+startY;//Y坐标移动
//最大最小限制
if(endX>maxX)
{
endX=maxX;
}
else if(endX<)
{
endX=0;
}
if(endY>maxY)
{
endY=maxY;
}
else if(endY<)
{
endY=0;
} $("#zhuti").css("top",endY+"px");
$("#zhuti").css("left",endX+"px");
}) })
}
//鼠标抬起 释放移动事件
$("body").bind("mouseup",funhction(){
$("body").unbind("mousemove");
}) //关闭窗口
$("#qd").click(function(){
$("#zhuti").remove();//移除主体
$("zz").remove();//移除遮罩
}) $(".close").click(function(){
$("#zhuti").remove();//移除主体
$("zz").remove();//移除遮罩
}) }
 

自己封装的tc的更多相关文章

  1. C++实现对lua访问的封装

    这是一个几年前写的对lua的访问封装,当时的项目仅提供了最基本的lua访问接口:调用lua函数,向lua注册标准格式的C++函数. 本来我想引进luabind,但luabind相对又过于复杂,并不是所 ...

  2. Linux TC流量控制HOWTO中文版

    <本文摘自Linux的高级路由和流量控制HOWTO中文版 第9章节>网人郭工进行再次编译: 利用队列,我们可以控制数据发送的方式.记住我们只能对发送数据进行控制(或称为整形).其实,我们无 ...

  3. 电影TS、TC、SCR、R5、BD、HD等版本是什么意思

    在很多电影下载网站的影片标题中我们都能看到,比如<刺杀希特勒BD版>.<游龙戏凤TS版>等,这些英文缩写都是什么意思呢?都代表什么画质?以下就是各个版本的具体含义: 1.CAM ...

  4. Linux TC (traffic control)

    在着手学习TC采用如下单位来描述带宽: mbps = 1024 kbps = 1024 * 1024 bps => byte/s mbit = 1024 kbit => kilo bit/ ...

  5. 简易封装一个带有占位文字的TextView

    在实际iOS应用开发中我们经常会用到类似于下图所示的界面,即带有占位文字的文本框:

  6. linux 下使用 tc 模拟网络延迟和丢包(转)

    1 模拟延迟传输简介 netem 与 tc: netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带 ...

  7. Javascript 封装问题

    Javascript 封装问题 为什么会用这样一个题目呢,这是要说封装的什么问题,本文并不讲高深的封装理论,只是解决一个小问题. 问题来源 今天在百度知道上闲逛,遇到一个网友的问题,问题如下,问题的地 ...

  8. linux 下使用 tc 模拟网络延迟和丢包

    1 模拟延迟传输简介 netem 与 tc: netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带 ...

  9. 半导体热阻问题深度解析(Tc,Ta,Tj,Pc)

    半导体热阻问题深度解析(Tc,Ta,Tj,Pc) 本文是将我以前的<有关热阻问题>的文章重新梳理,按更严密的逻辑来讲解. 晶体管(或半导体)的热阻与温度.功耗之间的关系为: Ta=Tj-* ...

随机推荐

  1. 网络地址到物理地址的映射(ARP)

    网络的互连首先要解决的问题就是网络地址到物理地址的映射,以太网接口分配的是一个48位的物理地址,而IP地址却只有32位,因此无法将它编码到IP地址中.有人建议可以构建一个中央数据库存储所有网络中的网络 ...

  2. WinForm中使MessageBox实现可以自动关闭功能

    WinForm 下我们可以调用MessageBox.Show 来显示一个消息对话框,提示用户确认等操作.在有些应用中我们需要通过程序来自动关闭这个消息对话框而不是由用户点击确认按钮来关闭.然而.Net ...

  3. memcached内存分配及回收初探

    对memcached(后面简称mc) 的内存分配及回收机制进行了深度分析和测试,以下是一些学习的心得,和大家共同探讨一下,期望能抛砖引玉 mc简介: mc是由LiveJournal技术团队开发的一套分 ...

  4. Nginx 配置基于域名的虚拟

    编辑配置文件 vi /etc/nginx/nginx.conf user    www www; worker_processes  2; error_log  logs/error.log  not ...

  5. 使用元组Tuple,返回多个不同类型的值

    记得我在不知道Tuple时,如果想实现调用某个函数时,返回多个值,则需要使用ref或者out了. string name = ""; int result= GetInfo(ref ...

  6. GitHub删除文件

    删除单个文件 一般情况下,通常可直接在文件管理器中直接把文件删了,或者用rm命令删了 $ rm README.txt 这个时候,工作区是删除了,可版本库还没有.git status命令会立刻告诉你哪些 ...

  7. IceMx.Mvc 我的js MVC 框架 开篇

    开篇 这篇文章是后补的,前端时间想写一些对于js开发的一些理解,就直接写了,后来发现很唐突,所以今天在这里补一个开篇. 我的js Mvc 框架 基于实用设计,过分设计等于没设计.本着简单的原则,它只实 ...

  8. Hibernate配置XML连接数据库

    一.hibernate.cfg.xml 1.配置连接Oracle <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate ...

  9. Introduction to OOC Programming Language

    Introduction to OOC Programming Language 文/akisann @ cnblogs.com / zhaihj @ github.com 本文同时发布在github ...

  10. 百度地图在某架构下找不到符号.a文件的问题

    1.现象: 就是说找不到符号给i386的架构(就是模拟器).或者找不到符号给arm架构(真机). ld: warning: ignoring file /Users/pufang/xcode/demo ...