Maison > interface Web > js tutoriel > Exemple complet de fenêtre flottante pouvant être zoomée, glissée, fermée et réduite avec les compétences JS_javascript

Exemple complet de fenêtre flottante pouvant être zoomée, glissée, fermée et réduite avec les compétences JS_javascript

WBOY
Libérer: 2016-05-16 16:11:09
original
1681 Les gens l'ont consulté

L'exemple de cet article décrit la méthode JS d'implémentation d'une fenêtre flottante qui peut être zoomée, déplacée, fermée et réduite. Partagez-le avec tout le monde pour votre référence. La méthode de mise en œuvre spécifique est la suivante :

Copier le code Le code est le suivant :








var zindex=0  //全局变量
function dragClass (nom, titre, contenu, gauche, haut, largeur, hauteur) {
var isMouseDown=false;
var maximum=false;
var offX=0;   //设置抓取点X坐标
var offY=0;   //设置抓取点Y坐标
var vieuxGauche;  //保存正常状态的X坐标
var vieuxTop;   //保存正常状态的Y坐标
this.mousedown= function (){    //按下拖动点
     Bar.setCapture(); //设置抓取
     offX=parseInt(event.clientX)-parseInt(Window.style.left);
     offY=parseInt(event.clientY)-parseInt(Window.style.top);
     isMouseDown=true;
 si(Fenêtre.style.zIndex<=zindex){
  zindex ;
  Window.style.zIndex=zindex;
 >
>
this.mousemove= function (){    //拖动窗口
     if (isMouseDown && !maximum){
  Bar.style.cursor='déplacer'
  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='main';
     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 (){    //双击最大最小化
     si (!maximum){
    oldLeft=Fenêtre.style.left;   //保存正常状态的X坐标
    oldTop=Fenêtre.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; //网页可见区域宽-标题高度
    }autre{
      Window.style.height='20px';
    >
    maximum=vrai;
     }autre{
    Window.style.left=oldLeft;
    Window.style.top=oldTop;
    Window.style.width=largeur 'px';
    Title.style.width=(width-40) 'px';
    ReSize.style.display='';
    if(Change.innerText=='-'){
      Window.style.height=hauteur 'px';
      Content.style.height=parseInt(height-20) 'px';
    }autre{
      Window.style.height='20px';
    >
    maximum=faux;
     >
 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';
     }autre{
    si (maximum){
      Window.style.height='100%';
      Content.style.display='';
      ReSize.style.display='';
      Content.style.height=document.body.clientHeight-20; //网页可见区域宽-标题高度
    }autre{
      Window.style.height=hauteur 'px';
      Content.style.display='';
      ReSize.style.display='';
      Content.style.height=parseInt(height-20) 'px';
    >
    Change.innerText='-';
     >
>

var Window=document.createElement("div");
Window.id="nom divWindow";
Window.className="divWindow";
Window.style.left=gauche 'px';
Window.style.top=haut 'px';
Window.style.width=largeur 'px';
Window.style.height=hauteur 'px';
Window.onclick=fonction(){
if(parseInt(Window.style.zIndex)<=zindex){
zindex ;
Window.style.zIndex=zindex;
>
>
this.Window=Fenêtre;
//Les attributs publics peuvent être exploités en dehors de la classe ; si vous souhaitez opérer en dehors de la classe, vous pouvez changer l'élément en attribut public

var Bar=document.createElement("div");
Bar.id="divBar" nom;
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" nom ;
Title.className="divTitle";
Title.style.width=(width-40) 'px'; //Longueur du titre adaptative
Titre.innerText=titre;
Bar.appendChild(Titre);
var Change=document.createElement("span");
Change.id="divChange" nom;
Change.className="divChange";
Change.innerText="-";
Change.ondblclick=this.changeWindow;
Change.onclick=this.changeWindow;
Bar.appendChild(Changement);
var Close=document.createElement("span");
Close.id="divClose" nom;
Fermer.onclick=function(){
Window.style.display='none';
>
Fermer.className="divClose";
Fermer.innerText="×";
Bar.appendChild(Fermer);
var Content=document.createElement("div");
Content.id="divContent" nom;
Content.className="divContent"
Content.innerHTML=content;
Content.style.height=parseInt(height-20) 'px';
Window.appendChild(Contenu);

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){ //Définir la largeur minimale
Window.style.width=largeur 'px';
Title.style.width=(width-40) 'px';
>
If(height>100){ //Définir la hauteur minimale
Window.style.height=hauteur 'px';
Content.style.height=parseInt(height-20) 'px';
>
>
>
ReSize.onmouseup=function(){
ReSize.releaseCapture();
isMouseDown=false;
>
Window.appendChild(ReSize);
var Iframe=document.createElement("iframe"); //Ajouter une iframe, bloquer le contrôle

J'espère que cet article sera utile à la conception de la programmation JavaScript de chacun.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal