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

JavaScript Discussion :

Mettre en plein écran lors d'un clic sur un bouton


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 41
    Points : 9
    Points
    9
    Par défaut Mettre en plein écran lors d'un clic sur un bouton
    Bonjour à tous,

    Il y a quelque chose que je n'arrive pas à faire avec mon site.
    En voici un exemplaire pour illustrer et vous permettre de le visiter vous-même : http://epichardjump.com/Imaginary/index.html

    Comme vous le voyez, en haut à droite de l'image principale, il y a une croix permettant de ranger la barre de droite. C'est sur cette croix que je souhaite qu'en appuyant, en plus de ranger le menu de droite, le navigateur passe en plein écran.
    J'ai déjà essayé différents codes comme ceux-ci :
    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
    <script type="text/javascript">
    document.querySelector( ".toggle" ).addEventListener( "click", function(oEvent) {
    oEvent.preventDefault();
    function toggleFullScreen() {
    if ((document.fullScreenElement && document.fullScreenElement !== null) ||
    (!document.mozFullScreen && !document.webkitIsFullScreen)) {
    if (document.documentElement.requestFullScreen) {
    document.documentElement.requestFullScreen();
    } else if (document.documentElement.mozRequestFullScreen) {
    document.documentElement.mozRequestFullScreen();
    } else if (document.documentElement.webkitRequestFullScreen) {
    document.documentElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
    }
    } else {
    if (document.cancelFullScreen) {
    document.cancelFullScreen();
    } else if (document.mozCancelFullScreen) {
    document.mozCancelFullScreen();
    } else if (document.webkitCancelFullScreen) {
    document.webkitCancelFullScreen();
    }
    }
    }
    } );
    </script>
    ou encore :
    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
    document.querySelector( ".toggle" ).addEventListener( "click", function(toggleFullScreen()) {
    toggleFullScreen.preventDefault();
    {
    if ((document.fullScreenElement && document.fullScreenElement !== null) ||
    (!document.mozFullScreen && !document.webkitIsFullScreen)) {
    if (document.documentElement.requestFullScreen) {
    document.documentElement.requestFullScreen();
    } else if (document.documentElement.mozRequestFullScreen) {
    document.documentElement.mozRequestFullScreen();
    } else if (document.documentElement.webkitRequestFullScreen) {
    document.documentElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
    }
    } else {
    if (document.cancelFullScreen) {
    document.cancelFullScreen();
    } else if (document.mozCancelFullScreen) {
    document.mozCancelFullScreen();
    } else if (document.webkitCancelFullScreen) {
    document.webkitCancelFullScreen();
    }
    }
    }
    } );
    Mais ça ne fonctionne pas. A mon avis, le problème est que je ne parviens pas à identifier précisément le bouton (la croix) dans le code, et donc logiquement que je n'arrive pas à lui attribuer une commande.

    Bien sûr je vous invite à voir par vous même le code avec la console développeurs de votre navigateur, et je reste à votre disposition pour vos questions.

    Merci par avance !

  2. #2
    Membre régulier
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Juillet 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Juillet 2016
    Messages : 65
    Points : 103
    Points
    103
    Par défaut
    As tu trouvé ta solution? Chez moi ça fonctionne très bien

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 41
    Points : 9
    Points
    9
    Par défaut
    Heu comment ça ça fonctionne très bien ? Tu as essayé sur l'URL que j'ai donnée ?
    Parce que moi ça ne marche pas du tout :/

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    J'utilise, depuis quelques années, le code ci-dessous.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <button id="fullScreen">Plein écran</button>

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    const enterFullScreen = function( element ){
      if( element.requestFullScreen ){
        element.requestFullScreen();
      } else if ( element.webkitRequestFullScreen ){
        element.webkitRequestFullScreen( Element.ALLOW_KEYBOARD_INPUT );
      } else if ( element.mozRequestFullScreen ){
        element.mozRequestFullScreen();
      }
    };
     
    document.querySelector( '#fullScreen' ).addEventListener( 'click', function( ev ){
      enterFullScreen( document.body );
    }, false );

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 41
    Points : 9
    Points
    9
    Par défaut
    Non mais le problème n'est pas le code, le problème c'est que je n'arrive pas à l'appliquer au bouton du site !

  6. #6
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Déplace ton script main.js derrière </body> ou utilise ready de jQuery
    One Web to rule them all

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 41
    Points : 9
    Points
    9
    Par défaut
    Où ça ? Sur quel fichier ?

  8. #8
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    la balise <script> de main.js dans index.html, derrière la fermeture du tag body.

    http://javascript.developpez.com/faq...positionScript
    One Web to rule them all

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 41
    Points : 9
    Points
    9
    Par défaut
    C'est fait, et ensuite ?

  10. #10
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Ça aurait dû suffire... des erreurs en console ?
    One Web to rule them all

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 41
    Points : 9
    Points
    9
    Par défaut
    Mais comment sais-tu si la croix est bien ciblée par le code ?

    Je ne sais pas si vous avez bien compris ce que je cherche à faire, alors dans le doute j'essaye de réexpliquer:
    J'ai un site permettant de présenter des images en haute définition, mais je souhaite pour améliorer le confort faire en sorte que lorsque l'on passe en mode viewers sur le site, c'est à dire qu'on appuie sur la petite croix qui fait disparaître le menu à droite, le navigateur passe en plein écran, pour que l'image prenne tout l'écran.
    Vous ne pouvez probablement pas comprendre sans voir le site en fait.

    Voila, pour les codes d'erreurs dès que je suis sur mon ordi je vérifie et je vous dis les éventuelles erreurs présentes.

  12. #12
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Tu as lu l'entrée de la FAQ que j'ai posté en lien ?

    Tu as donné l'URL de ton site, donc on peut voir l'erreur : index.html:135 Uncaught TypeError: Cannot read property 'addEventListener' of null

    Je pensais que tu avais mis ton code dans main.js mais tu l'as mis dans une balise script en inline dans index.html. C'est cette balise là qu'il faut déplacer alors. Mais le plus propre aurait été de mettre tous les scripts au même endroit, dans la fonction init de main.js par exemple?
    One Web to rule them all

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 41
    Points : 9
    Points
    9
    Par défaut
    Ce n'est pas moi qui ai fait la partie JS, j'aurai du le préciser, autant pour moi.

    Sur la FAQ que tu m'as envoyé ils disent de mettre le script dans body, pas après, par contre.

    Donc si j'ai bien compris, tu me demandes de mettre la balise inline avec le code juste après le </body> ?
    Si oui, j'ai essayé de déplacer tout ça :
    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
    <script type="text/javascript">
    			function toggleFullScreen() {
    			  if ((document.fullScreenElement && document.fullScreenElement !== null) ||    
    			   (!document.mozFullScreen && !document.webkitIsFullScreen)) {
    				if (document.documentElement.requestFullScreen) {  
    				  document.documentElement.requestFullScreen();  
    				} else if (document.documentElement.mozRequestFullScreen) {  
    				  document.documentElement.mozRequestFullScreen();  
    				} else if (document.documentElement.webkitRequestFullScreen) {  
    				  document.documentElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);  
    				}  
    			  } else {  
    				if (document.cancelFullScreen) {  
    				  document.cancelFullScreen();  
    				} else if (document.mozCancelFullScreen) {  
    				  document.mozCancelFullScreen();  
    				} else if (document.webkitCancelFullScreen) {  
    				  document.webkitCancelFullScreen();  
    				}  
    			  }  
    			}
     
     
    			document.querySelector( ".toggle" ).addEventListener( "click", function( oEvent ) {
    				oEvent.preventDefault(); // empêche le comportement par défaut du lien
    				toggleFullScreen();
    			} );
    	</script>
    pour le mettre juste après.

    Je suis désolé je ne connais pas très bien le JS je ne pensais pas que ça poserai tant de problème :/

    Sinon, ça me semble judicieux de déplacer ce code dans le main.js, mais donc on est bien d'accord que si je souhaite faire ça je n'ai qu'à couper-coller le code ci-dessus et à le placer dans main.js n'importe où (pas dans une autre fonction bien sûr), en prenant soin d'enlever les balises <script> ?

    Merci pour votre aide !

  14. #14
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Pour être clair, tu peux mettre ce script n'importe où du moment qu'il est après l'élément que tu essaies de sélectionner. Ton erreur vient du fait que le script essaie de récupérer un élément qui est plus bas dans le code HTML, et donc pas encore interprété par le navigateur. Juste avant ou juste après la fermeture du body, peu importe.
    One Web to rule them all

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 41
    Points : 9
    Points
    9
    Par défaut
    Et pourtant en le plaçant même après le </body>, ça ne fonctionne pas :/

  16. #16
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Sans le nouveau code ni les messages d'erreurs en console, le "ça ne marche pas" ne va pas nous être utile pour t'aider davantage
    One Web to rule them all

  17. #17
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 41
    Points : 9
    Points
    9
    Par défaut
    Le nouveau code est maintenant en ligne, et en ce qui concerne le message d'erreur, il n'y en a aucun, pourtant ça ne marche toujours pas.

  18. #18
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    le constat est que ton élément est ajouté dynamiquement, voir fichier main.js, c'est donc dans ce fichier que tu dois ajouter ton gestionnaire complémentaire.

  19. #19
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 41
    Points : 9
    Points
    9
    Par défaut
    Le code est ajouté dans Main.js, à la toute fin avant le "}; return _; })(jQuery); main.init();" (après ça ne fonctionne pas).
    On se rapproche mais c'est pas encore ça, là l'écran reste gris foncé et rien d'autre ne s'affiche.

    Je vous laisse le constater ici (changement de lien, l'autre site étant down).

  20. #20
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Le code est ajouté dans Main.js, à la toute fin avant le "}; return _; })(jQuery); main.init();"
    il ne faut pas faire n'importe quoi quand même !

    Tu crées/déclares ta fonction, de façon standard, puis tu ajoutes l'événement proprement dans le script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Toggle.
    _.$toggle.on('click', function () {
        _.toggle();
        // appel de ta fonction
        toggleFullScreen();
    });

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/10/2010, 04h02
  2. recharger la page lors d'un clic sur un bouton radio
    Par enzostar dans le forum Langage
    Réponses: 4
    Dernier message: 02/12/2009, 10h16
  3. Réponses: 1
    Dernier message: 25/10/2009, 13h39
  4. Réponses: 1
    Dernier message: 14/10/2009, 15h40
  5. Ouvrir 4 états lors d'un clic sur un bouton
    Par Seb33300 dans le forum WebDev
    Réponses: 8
    Dernier message: 28/01/2008, 15h53

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