html最小化窗口,[转载]js实现窗口(支持拉伸,拖拽,最大化,最小化,滚动
雨亭原创,转载注明
执行效果:
一窗体实现的功能:
1.鼠标拖动.
2.八个方向的拉伸.
3.可定制窗口标题,内容(文本或HTML),初始大小和位置,最小宽度,高度.
4.支持滚动条.
5.关闭窗体.
6.最大化,最小化窗体.
7.记录最大,最小化之前的位置,可还原回去.
8.可创建多个window窗口.
二浏览器支持情况:
浏览器 版本
1.Chrome 18.0.1025.152 2.Safari 5.1.5 3.Firefox 11.0 4.Opera 11.62 5.IE6,IE7,IE8,IE9
css代码:
/*窗口样式
.winDiv {position: absolute;background-color:#FFFFFF;}
/*拖动样式
.winHead {position: absolute;top:0px;height:
20px;width:100%;background-color:#336699; cursor:
move;z-index:2;}
/*窗体标题
.winTitle{float:left;color:white;font-size:14px;}
/*关闭窗口
.winClose{float:right;cursor:default;width:14px;height:14px;padding-right:1px;}
/*最大化
.winMax{float:right;cursor:default;width:14px;height:14px;padding-right:1px;}
/*最小化
.winMin{float:right;cursor:default;width:14px;height:14px;padding-right:1px;}
.IE6Hack{height:0px;margin:0px;border:0px;padding:0px;width:100%;*height:20px;}
/*窗体内容
.winContent{position:
absolute;top:20px;bottom:0px;width:100%;color:#336699;
overflow:scroll;*top:0px;*height:100%;*bottom:0px;z-index:1;}
/*拉伸主样式
.resize {position: absolute;width: 2px;height: 2px;background:
#336699;}
/*左上
.resize-tl {top: -2px;left: -2px;cursor: nw-resize;
font-size:0}
/*中上
.resize-tm {top: -2px;width:100%;cursor: n-resize;
font-size:0}
/*右上
.resize-tr {top: -2px;right: -2px;cursor: ne-resize;
font-size:0}
/*中右
.resize-ml {top: 0px;height:100%;left: -2px;cursor: w-resize;
font-size:0}
/*中左
.resize-mr {top: 0px;height:100%;right: -2px;cursor: e-resize;
font-size:0}
/*下左
.resize-bl {bottom: -2px;left: -2px;cursor: sw-resize;
font-size:0}
/*下中
.resize-bm {bottom: -2px;left: 0px;width:100%;cursor: s-resize;
font-size:0}
/*下右
.resize-br {bottom: -2px;right: -2px;cursor: se-resize;
font-size:0}
html代码:
/p>
Strict//EN" "DTD/xhtml1-strict.dtd">
lang="en" xml:lang="en">
content="text/html; charset=gb2312" />
测试窗口
rel="stylesheet"
href="win.css">
var content1 = "1.鼠标拖动
"+
"2.八个方向的拉伸
"+
"3.可定制窗口标题,内容(文本或HTML),初始大小和位置,最小宽度,高度.
"+
"4.支持滚动条
"+
"5.关闭窗体
"+
"6.最大化,最小化窗体
"+
"7.记录最大,最小化之前的位置,可还原回去
"+
"8.可创建多个window窗口
";
var content2 =
"浏览器 版本
"+ "Chrome 18.0.1025.152
"+ "Safari 5.1.5
"+ "Firefox 11.0
"+ "Opera 11.62
"+ "IE6,IE7,IE8,IE9 ";
var win1 = new DivWindow({ winTitle:
"窗体支持的功能", winContent:content1 ,initX: 180,
initY: 80, initW: 200, initH: 200 });
runWindow(win1);
var win2 = new DivWindow({ winTitle: "浏览器支持情况", winContent:content2 ,initX: 280, initY: 180, initW: 200, initH: 200
});
runWindow(win2);
javascript代码:
var curSelected = null
; /*当前操作窗口
var winNumber = 0 ;
/*倒数第二个创建的窗口的Id
var winList = new
Array(); /*窗口对象列表
var winIdList = new
Array(); /*窗口对象Id列表
var mouseX = 0, mouseY = 0
; /*当前鼠标位置
var lastMouseX = 0, lastMouseY = 0 ;/*上次鼠标位置
var zIndex = 2
; /*z轴坐标,因为CSS中最大z-index为2,所以这里设为2
/*注册事件兼容代码
function addEvent(o , t , f )
{
if(o.addEventListener)
o.addEventListener(t,f ,false);
if(o.attachEvent)
o.attachEvent("on"+t,f); }
/*将窗体对象地址和窗体Id进行关联,将新创建窗口添加进body中
function runWindow(win)
{ winList[winList.length] = win ;
winIdList[winIdList.length] = win.winDiv.id
;
/*将窗体加入到Body中
document.body.a(win.winDiv);
}
/*根据窗体Id获得窗体对象地址
function getWinById(id)
{
for(var w in winIdList )
{
if(id == winIdList[w])
return
winList[w] ;
}
}
/*根据窗体对象地址删除窗体Id和窗体对象地址
function delWin(win)
{
for(var w in winList)
{
if(win == winList[w])
{
winList[w] =
null ;
winIdList[w]
= null ;
return
;
}
}
}
/*窗体构造函数
function DivWindow(config)
{
var props =
{
winTitle:
"窗口1", /*窗体标题
winContent:
"hellojames!", /*窗体内容
initX:
50,
initY:50, /*保留初始位置,最大,最小化时使用
initW:
50,
initH:50, /*保留初始大小,最大,最小化时使用
minWidth:200,
minHeight:20, /*最小宽度,最小高度
history:true, /*是否保存前一个窗体位置大小信息
elmX:
50, elmY:
50, /*当前窗体位置
elmW:
50, elmH:
50, /*当前窗体大小
handles:
["tl","tm","tr","ml","mr","bl","bm","br"], /*拉伸窗体的8个方向
element:
null, /*窗体元素
handle:
null, /*当前要触发事件的元素只针对拖拽和拉伸
ie6Hack:
1 , /*针对IE6下拉伸上下拉伸窗口时布局混乱的解决办法,鼠标每移动一次就增加或减少窗体宽度1px
isIE6:
false /*是否是IE6
};
for (var p in props)
this[p] =
(typeof config[p] == "undefined") ? props[p] : config[p];
this.isIE6 =
document.all&&!window.XMLHttpRequest;
/*判断是否是IE6
/*给当前窗体的大小和位置初始化
this.elmX = this.initX ;
this.elmY = this.initY ;
this.elmW = this.initW ;
this.elmH = this.initH ;
/*创建窗体
var winDiv = document_createElement_x("div");
html最小化窗口,[转载]js实现窗口(支持拉伸,拖拽,最大化,最小化,滚动相关推荐
- 原生JS实现拖拽进度条、滚动鼠标显示相应的内容
今天要分享的是运用原生JS实现拖拽进度条.滚动鼠标显示相应的内容,实现效果如下: 以下是代码实现,欢迎大家复制粘贴. <!DOCTYPE html> <html><hea ...
- 原生JS实现鼠标按下拖拽效果
原生JS实现鼠标按下拖拽效果 <!DOCTYPE html> <html lang="en"><head><meta charset=&q ...
- html实现鼠标拖拽按钮,JS实现鼠标按下拖拽效果
原生js实现鼠标按下拖拽效果,供大家参考,具体内容如下 鼠标拖动 body { margin: 0; } div { width: 200px; height: 200px; position: ab ...
- Qt 窗口的一些简单设置-标题、图标、最大化最小化按钮、任务栏图标
一些很零散的窗体控制方法,在这总结一些. 1.更改窗体标题 this->setWindowTitle("窗体标题"); 窗体标题"就是更改的窗体标题 2.控制窗体大 ...
- js实现页面元素的拖拽
平时在我们页面上,经常会悬浮着一些功能按钮,如帮助,联系客服等,按钮的显示比较简单,用定位悬浮在自己需要的位置上就行,比如下面的页面上我们展示一个帮助的按钮,用户点击后可以展示一些帮助的信息: 代码: ...
- 原生js实现QQ邮箱邮件拖拽删除功能
步骤分析: 根据数据结构生成HTML结构 全选和单选功能的实现,以及当其为选中状态时它的父级的颜色变化的 点击删除,删除结构同时删除数据 给每一个li绑定mousedown,tip显示,并且定位在鼠标 ...
- 原生拖拽太拉跨了,纯JS自己手写一个拖拽效果,纵享丝滑
前言 提到元素拖拽,通常都会先想到用 HTML5 的拖拽放置 (Drag 和 Drop) 来实现,它提供了一套完整的事件机制,看起来似乎是首选的解决方案,但实际却不是那么美好,主要是它的样式太过简陋, ...
- js实现进度条的拖拽
目录 代码分析 搭建一个进度条 进度条的样式 js控制拖拽 js整体代码 代码分析 搭建一个进度条 html代码实现 <!-- 外部容器 --><div class="wr ...
- vue——js实现图片/文件的拖拽上传(复制粘贴就能用,还有优化空间)
首先先创建元素容器 <template><div id="drop"><span v-show="isUpload" class= ...
最新文章
- Linux终端上如何将图像转换成 ASCII 艺术
- FPGA之道(77)静态时序分析(三)同步时序逻辑的分析原理
- 表单FORM的5个属性name,method,action,enctype,target
- 论文目录用word怎么自动生成或插入?
- error 4 in libc-2.12.so 解决办法
- 从零开始做一个SLG游戏(三):用unity绘制图形
- WF4.0 基础篇 (二十九) WorkflowInspectionServices
- Blend设计VSM
- ubuntu 系统U盘中 文件出现小锁子
- 2020年软考信息安全工程师考试学习资料包
- 学计算机好轻松,猎证全国计算机等级考试学习系统
- ChannelMergerNode
- java swing 字体设置_java如何改变Swing应用程序的默认字体/字号
- win2003server域控服务器安装及设置
- matlab数组从小到大排序,matlab数组排序
- 毕业论文如何设置页码连续编页,页眉奇偶页不同?
- CRM管理系统源码PHP开源系统源码
- 【硬核技术文】研发绩效,AI算法的完美舞台
- 想要制作出好看的软蜡笔画?来看这份JixiPix Pastello Pro操作指南!
- 开题报告的国内外研究现状怎么写呢?
热门文章
- R语言ggplot2可视化图像设置不同的字体实战
- dropout是什么?为什么dropout管用?测试集上是否需要使用dropout?说明为什么神经网络中的dropout可以作为正则化?
- 困惑度 (perplexity)
- Long-read sequencing for improved analysis
- 不用在读长和准确性之间做选择题,PacBio发表新方法
- mysql 联合索引长度_MySQL 中索引的长度的限制
- stm32使用flymcu烧写程序
- IEDA与activiti不兼容等等安装错误问题的解决方案
- 在Ubuntu16.04上安装CUDA
- Java报错解决:org.apache.http.ConnectionClosedException: Premature end of chunk coded message body: closi