亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

JS實現可縮放、拖動、關閉和最小化的浮動窗口完整實例

2024-05-06 16:16:07
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了JS實現可縮放、拖動、關閉和最小化的浮動窗口的方法,實例分析了javascript操作窗口層的技巧,需要的朋友可以參考下
 

本文實例講述了JS實現可縮放、拖動、關閉和最小化的浮動窗口方法。分享給大家供大家參考。具體實現方法如下:

 

復制代碼代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JS實現可縮放、拖動、關閉和最小化的浮動窗口</title>
</head>
<style type="text/css">
 .divWindow{word-wrap:break-word;position:absolute; overflow:hidden;}
 .divBar{border:#000000 1px solid;position:absolute;border-bottom:#000000 1px solid;width:100%;height:20px;background-color:#0099FF;cursor:hand;line-height:20px;}
 .divChange{position:absolute;right:25px;font-size:10pt;}
 .divClose{position:absolute;right:5px;font-size:11pt;}
 .divTitle{position:absolute;left:5px;font-size:10pt;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow: hidden;}
 .divContent{border:#000000 1px solid;border-top:#000000 0px solid;position:absolute; top:20px;width:100%; background-color:#FFFFFF; overflow-y:auto;
    SCROLLBAR-BASE-COLOR: #FFFFFF;SCROLLBAR-ARROW-COLOR: #999999;SCROLLBAR-FACE-COLOR: #EEEEEE;SCROLLBAR-HIGHLIGHT-COLOR: #EEEEEE;
    SCROLLBAR-SHADOW-COLOR: #EEEEEE;SCROLLBAR-3DLIGHT-COLOR: #FFFFFF;SCROLLBAR-TRACK-COLOR: #FFFFFF;SCROLLBAR-DARKSHADOW-COLOR: #CCCCCC;}
 .divReSize{height:7px; width:7px; overflow:hidden; background-color:#0000FF; position:absolute; bottom:6px; right:6px; cursor:nw-resize}
 .divIframe{height:100%;width:100%;}
</style>
<script language="javascript">
var zindex=0  //全局變量
function dragClass(name,title,content,left,top,width,height){
var isMouseDown=false;
var maximum=false;
var offX=0;   //設置抓取點X坐標
var offY=0;   //設置抓取點Y坐標
var oldLeft;  //保存正常狀態的X坐標
var oldTop;   //保存正常狀態的Y坐標
this.mousedown= function (){    //按下拖動點
     Bar.setCapture(); //設置抓取
     offX=parseInt(event.clientX)-parseInt(Window.style.left);
     offY=parseInt(event.clientY)-parseInt(Window.style.top);
     isMouseDown=true;
 if(Window.style.zIndex<=zindex){
  zindex++;
  Window.style.zIndex=zindex;
 }
}
this.mousemove= function (){    //拖動窗口
     if (isMouseDown && !maximum){
  Bar.style.cursor='move'
  Window.style.left=event.clientX-offX;
  Window.style.top=event.clientY-offY;
  if(Window.style.zIndex<=zindex){
   zindex++;
   Window.style.zIndex=zindex;
  }
     }
}
this.mouseup=function (){     //松開按鈕
     Bar.releaseCapture();     //取消抓取
     Bar.style.cursor='hand';
     if (parseInt(Window.style.top)<0){
     Window.style.top='0px';
     }
     if (parseInt(Window.style.left)<0){
     Window.style.left='0px';
     }
     isMouseDown=false;
}
this.dblclick=function (){    //雙擊最大最小化
     if (!maximum){
    oldLeft=Window.style.left;   //保存正常狀態的X坐標
    oldTop=Window.style.top;    //保存正常狀態的Y坐標
    Window.style.left='0px';
    Window.style.top='0px';
    Window.style.width= document.body.clientWidth;    //網頁可見區域寬
    Title.style.width=(document.body.clientWidth-40)+'px';  //設置標題長度
    ReSize.style.display='none';
    if(Change.innerText=='-'){
      Window.style.height='100%';
      Content.style.height=document.body.clientHeight-20; //網頁可見區域寬-標題高度
    }else{
      Window.style.height='20px';
    }
    maximum=true;
     }else{
    Window.style.left=oldLeft;
    Window.style.top=oldTop;
    Window.style.width=width+'px';
    Title.style.width=(width-40)+'px';
    ReSize.style.display='';
    if(Change.innerText=='-'){
      Window.style.height=height+'px';
      Content.style.height=parseInt(height-20)+'px';
    }else{
      Window.style.height='20px';
    }
    maximum=false;
     }
 if(Window.style.zIndex<=zindex){
  zindex++;
  Window.style.zIndex=zindex;
 }
}
this.changeWindow=function (){   //收縮窗口
     event.cancelBubble=true;
  if(Change.innerText=='-'){
    Window.style.height='20px';
    Change.innerText='□';
    Content.style.display='none';
    ReSize.style.display='none';
     }else{
    if (maximum){
      Window.style.height='100%';
      Content.style.display='';
      ReSize.style.display='';
      Content.style.height=document.body.clientHeight-20; //網頁可見區域寬-標題高度
    }else{
      Window.style.height=height+'px';
      Content.style.display='';
      ReSize.style.display='';
      Content.style.height=parseInt(height-20)+'px';
    }
    Change.innerText='-';
     }
}

 

var Window=document.createElement("div");
 Window.id="divWindow"+ name;
 Window.className="divWindow";
 Window.style.left=left+'px';
 Window.style.top=top+'px';
 Window.style.width=width+'px';
 Window.style.height=height+'px';
 Window.onclick=function(){
  if(parseInt(Window.style.zIndex)<=zindex){
   zindex++;
   Window.style.zIndex=zindex;
  }
 }
this.Window=Window;
//公有屬性,類外可操作;若要在類外操作,可將元素改為公有屬性
 
var Bar=document.createElement("div");
 Bar.id="divBar"+name;
 Bar.onselectstart="return false";
 Bar.className="divBar";
 Bar.onmousedown=this.mousedown;
 Bar.ondblclick=this.dblclick;
 Bar.onmousemove=this.mousemove;
 Bar.onmouseup=this.mouseup;
 Window.appendChild(Bar);
var Title=document.createElement("span");
 Title.id="divTitle"+ name;
 Title.className="divTitle";
 Title.style.width=(width-40)+'px';    //自適應標題長度
 Title.innerText=title;
 Bar.appendChild(Title);
var Change=document.createElement("span");
 Change.id="divChange"+ name;
 Change.className="divChange";
 Change.innerText="-";
 Change.ondblclick=this.changeWindow;
 Change.onclick=this.changeWindow;
 Bar.appendChild(Change);
var Close=document.createElement("span");
 Close.id="divClose"+ name;
 Close.onclick=function(){
  Window.style.display='none';
 }
 Close.className="divClose";
 Close.innerText="×";
 Bar.appendChild(Close);
var Content=document.createElement("div");
 Content.id="divContent"+ name;
 Content.className="divContent"
 Content.innerHTML=content;
 Content.style.height=parseInt(height-20)+'px';
 Window.appendChild(Content);
 
var ReSize=document.createElement("div");
 ReSize.className="divReSize";
 ReSize.onmousedown=function(){
  if(Window.style.zIndex<=zindex){
   zindex++;
   Window.style.zIndex=zindex;
  }
  ReSize.setCapture();
  isMouseDown=true;
 }
 ReSize.onmousemove=function(){
   if (isMouseDown && !maximum)
   {
   width=parseInt(event.clientX)-parseInt(Window.style.left)+5;
   height=parseInt(event.clientY)-parseInt(Window.style.top)+5;
   if(width>100){       //設置最小寬度
    Window.style.width=width+'px';
    Title.style.width=(width-40)+'px';
   }
   if(height>100){       //設置最小高度
    Window.style.height=height+'px';
    Content.style.height=parseInt(height-20)+'px';
   }
   }
 }
 ReSize.onmouseup=function(){
  ReSize.releaseCapture();
  isMouseDown=false;
 }
 Window.appendChild(ReSize);
var Iframe=document.createElement("iframe"); //添加iframe,IE6.0下遮擋<select>控件
 Iframe.className="divIframe";
 Window.appendChild(Iframe);
 
 document.body.appendChild(Window);

}
</script>
<body>
<script>
//dragClass(ID,窗口標題,內容,X坐標,Y坐標,寬,長)
var c1="窗口1窗口1窗口1窗口1窗口1窗口1窗口1窗口1窗口1窗口1窗口1窗口1窗口1窗口1窗口1窗口1窗口1窗口1窗口1窗口1窗口1窗口1窗口1窗口1窗口1窗口1";
objWin1=new dragClass('win1','拖動窗口1',c1,0,150,300,300);
var c2="窗口2窗口2窗口2窗口2窗口2窗口2窗口2窗口2窗口2窗口2窗口2窗口2窗口2窗口2窗口2窗口2窗口2窗口2窗口2窗口2窗口2窗口2窗口2窗口2窗口2窗口2";
objWin2=new dragClass('win2','拖動窗口2',c2,350,150,300,300);
var objWin3;
function openWin(){
 if(objWin3==null){
  var c3="123窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3窗口3";
  objWin3=new dragClass('win3',c3,c3,700,150,300,300);
 }else{
    if(objWin3.Window.style.display=='none'){
   objWin3.Window.style.display='';
    }
 }
}
</script>
<input type="button" value="彈出【窗口3】" onClick="openWin()" />
</body>
</html>

 

希望本文所述對大家的javascript程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕综合一区| 精品国产乱码久久久久酒店| 亚洲人成网站色ww在线| 国产精品白丝av嫩草影院| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产91免费观看| 福利精品视频在线| 国产精品日韩在线一区| 日韩小视频在线| 国产日本欧美一区二区三区| 国产成人啪精品视频免费网| 亚洲最大中文字幕| www.欧美三级电影.com| 91精品国产综合久久香蕉| 中文字幕成人在线| 精品无人区乱码1区2区3区在线| 国产xxx69麻豆国语对白| 欧美电影免费在线观看| 国产亚洲精品久久久优势| 国产成人精品一区| 欧美另类第一页| 国产+成+人+亚洲欧洲| 欧美亚州一区二区三区| 日韩欧美999| 久久免费高清视频| 国产亚洲精品一区二区| 最新69国产成人精品视频免费| 国外成人在线直播| 欧美日韩国产综合新一区| 日韩电影视频免费| 色悠悠久久久久| 国产视频一区在线| 久久精品这里热有精品| 亚洲成年人在线播放| 久久99国产精品久久久久久久久| 一本久久综合亚洲鲁鲁| 成人精品视频在线| 国产亚洲欧美aaaa| 欧美在线性视频| 日韩欧美精品在线观看| 亚洲色图校园春色| 97国产在线视频| 精品人伦一区二区三区蜜桃免费| 国产亚洲欧美另类中文| 日韩av片电影专区| 亚洲丁香婷深爱综合| 91成品人片a无限观看| 成人国产精品av| 成人中文字幕在线观看| 国产美女扒开尿口久久久| 国产精品xxxxx| 日本欧美在线视频| 久久免费视频这里只有精品| 日本中文字幕成人| 久久久免费电影| 亚洲缚视频在线观看| 青青久久av北条麻妃海外网| 精品成人69xx.xyz| 日韩有码片在线观看| 亚洲国产精品电影在线观看| 国产精品人成电影在线观看| 日韩av成人在线观看| 久久精品99国产精品酒店日本| 久久综合色影院| 欧美激情中文字幕在线| 亚洲成人精品在线| 日韩在线播放视频| 欧美性做爰毛片| 97超级碰在线看视频免费在线看| 亚洲精品自拍第一页| 国模视频一区二区三区| 亚洲第一区中文99精品| 伊人久久久久久久久久久| 久久久人成影片一区二区三区观看| 亚洲免费高清视频| 亚洲国产成人精品一区二区| 国产精品视频精品视频| 亚洲少妇中文在线| 亚洲欧美在线看| 亲爱的老师9免费观看全集电视剧| 黑人极品videos精品欧美裸| 久久影视免费观看| 久久久亚洲精品视频| 伊人男人综合视频网| 91久久久久久久| 亚洲国产精品va在线看黑人| 国产日韩欧美在线| 久久免费在线观看| 欧美中文字幕在线观看| 色婷婷综合成人av| 精品久久久中文| 91精品综合视频| 欧美美最猛性xxxxxx| 欧美激情综合亚洲一二区| 国产精品旅馆在线| 久久中文字幕一区| 亚洲综合第一页| 亚洲成av人乱码色午夜| 欧美香蕉大胸在线视频观看| 色婷婷久久一区二区| 国产在线视频一区| 欧美日韩亚洲精品一区二区三区| 亚洲自拍欧美另类| 国产精品国产三级国产专播精品人| 亚洲精品suv精品一区二区| 亚洲激情成人网| 亚洲福利在线视频| 97超级碰碰人国产在线观看| 国产一区二区三区精品久久久| 亚洲自拍偷拍视频| 中文字幕日韩av| 久久久亚洲精选| 成人午夜在线影院| 亚洲欧美福利视频| 欧美精品第一页在线播放| 亚洲精品国产福利| 午夜精品久久久久久久99热浪潮| 91精品视频一区| 国产精品视频白浆免费视频| 国产精品亚洲美女av网站| 亚洲国产欧美自拍| 性欧美激情精品| 国产精品香蕉国产| 成人网在线免费观看| 亚洲va电影大全| 成人黄色午夜影院| 日韩av三级在线观看| 国产日韩欧美视频在线| 久久人人爽人人爽人人片亚洲| 国模视频一区二区三区| 欧美午夜精品在线| 国产精品欧美亚洲777777| 国产精品成人免费电影| 欧美日韩国产123| 91黑丝在线观看| 色综合久综合久久综合久鬼88| 亚洲成人a**站| 亚洲电影免费观看高清完整版| 欧美怡红院视频一区二区三区| 欧美精品在线观看| 国产亚洲视频中文字幕视频| 中文字幕亚洲无线码a| 全色精品综合影院| 国产精品va在线播放| 久久人人爽人人爽人人片av高清| 久久久人成影片一区二区三区| 久久久久久久91| 九九久久久久久久久激情| 精品视频偷偷看在线观看| 69久久夜色精品国产69| 美女扒开尿口让男人操亚洲视频网站| 综合网日日天干夜夜久久| 91高潮在线观看| 黑人极品videos精品欧美裸| 国模吧一区二区| 国产成人精品午夜| 日本欧美国产在线| 亚洲天堂男人的天堂| 中日韩美女免费视频网址在线观看| 亚洲视频在线免费看| 国产日韩欧美中文在线播放| 欧美亚州一区二区三区| 久久99热这里只有精品国产| 亚洲自拍偷拍一区|