IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Affichage fenêtre modale durant traitement


Sujet :

jQuery

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 283
    Points
    283
    Par défaut Affichage fenêtre modale durant traitement
    Bonjour, je souhaiterai afficher une fenêtre modale durant l'exécution d'un fonction. Pourriez-vous m'y aider à l'aide de ces exemples :

    https://jsfiddle.net/0754hamv/6/

    https://jsfiddle.net/0754hamv/5/

    https://jsfiddle.net/0754hamv/8/

    https://jsfiddle.net/0754hamv/9/

    Merci d'avance,

    Arsène

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    je ne pense pas que ce soit à nous de deviner ce que tu veux faire, mais plutôt à toi de nous donner suffisamment d'explications, non ?

    4 scripts, sans le moindre commentaire... c'est abuser...

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 283
    Points
    283
    Par défaut
    Tout est dit dans la première phrase. Quand on clique sur un lien on comprend de suite ce que je veux faire : Afficher une fenêtre modale durant l’exécution d'une fonction par simple clic.

    code JS (Jquery) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     $("#Treatment").on("click", function () { 
     
      $('#fond, .popup').show();
     
      maFonction ($('#fond, .popup').hide());
     
     function maFonction () {
     var i = 1;
     $('#Div2').show(000,function(){ 
     $("#Div1").hide(000,function(){      
     //alert("Ok");
     
     while (i<1100000) {
     
     $('#Div2').text(i);
     i++;
     
     };
     
     
    });
    });
    };
     
    });
    Code CSS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    #Div1 {
        background-color: black;
        height: 100px;
        margin: 100px;
        width: 100px;    
    }
     
    #Div2 {
        background-color: green;
        height: 100px;
        margin: 100px;
        width: 100px;
        color:yellow;
    }
     
     
    /*------------------POPUPS------------------------*/
    #fond {
       position:absolute;
       z-index:9000;
       background-color:darkgoldenrod;
       display:none;
       border-radius: 10px;
    }
     
    .popup {
       position:fixed;
       width:440px;
       height:200px;
       display:none;
       z-index:9999;
       padding:20px;
       border-radius: 10px;
       background-color: white;
       border: 1px solid grey;
    }
     
    #modal {
       width:300px;
       height:200px;
    }
     
    /*------------------FIN DE LA POPUPS------------------------*/
    code HTML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <input id="Treatment" type="button" onclick="$();" value="Treatment" />
     <div id="modal" class="popup"></div>  
    <div id="Div1">      
    </div>
     
    <div id="Div2">  
     
    </div>

  4. #4
    Membre régulier
    Homme Profil pro
    developpeur web et android
    Inscrit en
    Octobre 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : developpeur web et android
    Secteur : Services à domicile

    Informations forums :
    Inscription : Octobre 2014
    Messages : 64
    Points : 104
    Points
    104
    Par défaut
    Moi j'arrive pas a te comprendre très bien. Mais si c'est ce que je pense dans ton script js change cette partie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    while (i<1100000) {
     
     $('#Div2').text(i);
     i++;
     
     };
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $('#Div2').text(i);
    var p = setInterval(function(){
    	if (i<1100000) {
    		i++;
    		$('#Div2').text(i);
    	}
    	else{
    		clearInterval(p);
    	}
    },500)

    FIN EXECUTE VOIR

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 283
    Points
    283
    Par défaut
    Merci beaucoup, c'est exactement ce que je voulais faire. L'idée était de recouvrir l'écran d'une fenêtre modale transparente durant le traitement afin d'empêcher de cliquer sur les boutons.

    https://jsfiddle.net/0754hamv/13/


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
      $("#Treatment").on("click", function () { 
     
      $('#fond, .popup').show();
     
      maFonction ();
     
     function maFonction () {
     var i = 1;
     $('#Div2').show(000,function(){ 
     $("#Div1").hide(000,function(){      
     //alert("Ok");
     
    $('#Div2').text(i);
    var p = setInterval(function(){
    	if (i<11) {
    		i++;
    		$('#Div2').text(i);
    	}
    	else{
    		clearInterval(p);
        $('#fond, .popup').hide();
    	}
    },500)
     
     
    });
    });
    };
     
    });

    Code CSS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    #Div1 {
        background-color: black;
        height: 100px;
        margin: 100px;
        width: 100px;    
    }
     
    #Div2 {
        background-color: green;
        height: 100px;
        margin: 100px;
        width: 100px;
        color:yellow;
    }
     
     
    /*------------------POPUPS------------------------*/
    #fond {
       position:absolute;
       z-index:9000;
       background-color:darkgoldenrod;
       display:none;
       border-radius: 10px;
    }
     
    .popup {
       position:fixed;
       top:0;
       width:440px;
       height:200px;
       display:none;
       z-index:9999;
       padding:20px;
       border-radius: 10px;
       background-color: transparent;
       border: 1px solid grey;
    }
     
    #modal {
       width:300px;
       height:200px;
    }
     
    /*------------------FIN DE LA POPUPS------------------------*/
    Mais dans l'application que je crée, la fonction est un peu plus compliquée et je n'arrive pas à appliquer cette méthode. En auriez-vous une meilleure?

  6. #6
    Membre régulier
    Homme Profil pro
    developpeur web et android
    Inscrit en
    Octobre 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : developpeur web et android
    Secteur : Services à domicile

    Informations forums :
    Inscription : Octobre 2014
    Messages : 64
    Points : 104
    Points
    104
    Par défaut
    il y a plusieurs manière de le faire. Il y a pour plein écran ou uniquement dans la zone où sont les elements du form


    FIN EXECUTE VOIR

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 283
    Points
    283
    Par défaut
    Il me faudrait un plein écran. Mon problème est que je n'arrive pas à fermer la fenêtre modale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            
     while (arg1<= arg2) {
                 maFonction(arg1,arg2);
                 arg1++;               
                 if (arg1===arg2) {
                     n=1;
                    $("#fenModale").hide();   
               ou     $("#fenModale").remove();   
                 }; 
          };
    J'y arrive sur fiddle

    https://jsfiddle.net/0754hamv/17/

    mais pas dans mon appli car le code est différent. Il ressemble plus à cet exemple ou la fenêtre modale n'apparais qu'après le traitement alors que je voudrais la voir apparaitre pendant le traitement et disparaitre une fois ce dernier terminé.

    https://jsfiddle.net/0754hamv/18/


    code HTMl:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     <input id="Treatment" class="poplight" type="button" onclick="$();" value="Treatment" />
     <div id="modal" class="popup"></div>  
    <div id="Div1">      
    </div>
     
    <div id="Div2">  
     
    </div>
    Code css :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    #Div1 {
        background-color: black;
        height: 100px;
        margin: 100px;
        width: 100px;    
    }
     
    #Div2 {
        background-color: green;
        height: 100px;
        margin: 100px;
        width: 100px;
        color:yellow;
    }
     
     
    /*------------------POPUPS------------------------*/
    #fond {
       position:absolute;
       z-index:9000;
       background-color:darkgoldenrod;
       display:none;
       border-radius: 10px;
    }
     
    .popup {
       position:fixed;
       width:440px;
       height:200px;
       display:none;
       z-index:9999;
       padding:20px;
       border-radius: 10px;
       background-color: white;
       border: 1px solid grey;
    }
     
    #modal {
       width:300px;
       height:200px;
    }
     
    /*------------------FIN DE LA POPUPS------------------------*/
     
     
    #fade { /*--Masque opaque noir de fond--*/
    	display: none; /*--masqué par défaut--*/
    	background: #000;
    	position: fixed; left: 0; top: 0;
    	width: 100%; height: 100%;
    	opacity: .80;
    	z-index: 9999;
    }
    .popup_block{
    	display: none; /*--masqué par défaut--*/
    	background: #fff;
    	padding: 20px;
    	border: 20px solid #ddd;
    	float: left;
    	font-size: 1.2em;
    	position: fixed;
    	top: 50%; left: 50%;
    	z-index: 99999;
    	/*--Les différentes définitions de Box Shadow en CSS3--*/
    	-webkit-box-shadow: 0px 0px 20px #000;
    	-moz-box-shadow: 0px 0px 20px #000;
    	box-shadow: 0px 0px 20px #000;
    	/*--Coins arrondis en CSS3--*/
    	-webkit-border-radius: 10px;
    	-moz-border-radius: 10px;
    	border-radius: 10px;
    }
    img.btn_close {
    	float: right;
    	margin: -55px -55px 0 0;
    }
    /*--Gérer la position fixed pour IE6--*/
    *html #fade {
    position: absolute;
    }
    *html .popup_block {
    position: absolute;
    }
    Code JS Jquery :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
      $("#Treatment").on("click", function () { 
     
      $('#fond, .popup').show();
     
      maFonction ();
     
     function maFonction () {
     var i = 1; 
     
     $('#Div2').show(000,function(){ 
     $("#Div1").hide(000,function(){      
     //alert("Ok");
     
     while (i<=1200000) {
     
     $('#Div2').text(i); 
     if (i===1200000) { 
     $('#fade').remove(); 
     }
     i++; 
     };
     
     
    });
    });
    };
     
    });
     
     
    jQuery(function($){
     
    	//Lorsque vous cliquez sur un lien de la classe poplight
    	$('.poplight').on('click', function() {
    		var popID = $(this).data('rel'); //Trouver la pop-up correspondante
    		var popWidth = $(this).data('width'); //Trouver la largeur
     
    		//Faire apparaitre la pop-up et ajouter le bouton de fermeture
    		$('#' + popID).fadeIn().css({ 'width': popWidth}).prepend('<a href="#" class="close"><img src="close_pop.png" class="btn_close" title="Close Window" alt="Close" /></a>');
     
    		//Récupération du margin, qui permettra de centrer la fenêtre - on ajuste de 80px en conformité avec le CSS
    		var popMargTop = ($('#' + popID).height() + 80) / 2;
    		var popMargLeft = ($('#' + popID).width() + 80) / 2;
     
    		//Apply Margin to Popup
    		$('#' + popID).css({ 
    			'margin-top' : -popMargTop,
    			'margin-left' : -popMargLeft
    		});
     
    		//Apparition du fond - .css({'filter' : 'alpha(opacity=80)'}) pour corriger les bogues d'anciennes versions de IE
    		$('body').append('<div id="fade"></div>');
    		$('#fade').css({'filter' : 'alpha(opacity=80)'}).fadeIn();
     
    		return false;
    	});
     
     
    	//Close Popups and Fade Layer
    	$('body').on('click', 'a.close, #fade', function() { //Au clic sur le body...
    		$('#fade , .popup_block').fadeOut(function() {
    			$('#fade, a.close').remove();  
    	}); //...ils disparaissent ensemble
     
    		return false;
    	});
     
     
    });

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [macOS] Problème d'affichage d'une fenêtre modale (Qt::Dialog)
    Par arzela dans le forum Plateformes
    Réponses: 1
    Dernier message: 10/10/2011, 13h23
  2. Affichage fenêtre d'attente + traitements
    Par tnarol dans le forum Windows
    Réponses: 2
    Dernier message: 20/06/2009, 14h58
  3. [Prototype] Affichage fenêtre modale IE
    Par eyango dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 15/04/2009, 11h48
  4. [questdlg] Fenêtre avec affichage non-modal
    Par julieng31 dans le forum Interfaces Graphiques
    Réponses: 7
    Dernier message: 27/01/2009, 08h12
  5. Pb affichage fenêtre modale en TSE
    Par TsCyrille dans le forum C++Builder
    Réponses: 3
    Dernier message: 15/10/2007, 14h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo