formateur informatique

Déplacer une fenêtre sur une page Web en Javascript

Accueil  >  Technique  >  Javascript  >  Javascript Astuces  >  Déplacer une fenêtre sur une page Web en Javascript
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :


Inscription Newsletter    Inscription Newsletter
Sujets que vous pourriez aussi aimer :


Cliquer et glisser un calque

Avec cette nouvelle astuce Javascript s'appuyant sur des librairies JQuery, nous allons voir à quel point il est facile de glisser un calque sur une page Web pour que l'internaute puisse réagencer l'espace à sa guise.

Drag And Drop sur une page Web Internet en Javascript et JQuery

Sur l'exemple illustré par la capture, une annonce apparaît dans un calque indépendant au-dessus du contenu de la page Web. Il pourrait très bien s'agir de rubriques thématiques destinées à améliorer l'expérience de navigation. L'internaute peut choisir de masquer ce calque en cliquant sur la croix proposée dans l'angle supérieur gauche. Mais s'il juge l'information utile, il peut aussi choisir de le déplacer par cliquer-glisser, afin de dévoiler les zones de contenu jusqu'alors masquées. Nous allons donc voir comment donner vie à la fameuse technique du Drag And Drop sur une page Web.



Sources de travail
Pour la démonstration de cette nouvelle astuce, nous proposons d'appuyer l'étude sur des sources existantes, offrant notamment une page Web déjà structurée. Comme vous pouvez le voir, la décompression livre le fichier de la page Web. Il est nommé index.htm et il est accompagné de ses ressources dans les sous dossiers. Les feuilles de styles sont hébergées par le sous dossier Css tandis que les librairies JQuery sont stockées dans le sous dossier Js. Ces librairies sont essentielles. Ce sont elles qui offrent les méthodes à implémenter pour produire ces effets magiques comme celui du Drag And Drop que nous allons mettre en place. Elles se nomment respectivement : jquery-1.12.4.js et jquery-ui.js.
  • A la racine du dossier de décompression, double cliquer sur le fichier index.htm pour l'ouvrir,
Nous débouchons sur une page Web semblable à celle de la démonstration. Le calque d'une annonce est effectivement positionné au-dessus du contenu, le masquant en partie. Mais à ce stade, si vous tentez de déplacer le calque par cliquer-glisser, rien ne se produit encore. En revanche, vous pouvez le masquer en cliquant sur sa petite croix, en haut à gauche.
  • A la racine du dossier de décompression, cliquer droit sur ce même fichier index.htm,
  • Dans le menu contextuel, choisir de l'ouvrir avec un éditeur comme le Notepad ++,
Nous accédons ainsi à la structure Html de la page Web. En entête de code, vous notez les références aux feuilles de styles mais aussi et surtout aux librairies JQuery.

...
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/mes-styles.css">
<link rel="stylesheet" href="css/les-styles.css">
<script src="js/jquery-1.12.4.js"></script>
<script src="js/jquery-ui.js"></script>

<style>
…


Nous l'avons dit et nous le répétons, ce sont elles qui vont nous permettre d'appliquer des méthodes tout à fait remarquables sur des éléments Html on ne peut plus communs.

Le contenu masqué par l'annonce est inscrit dans un calque reconnu par l'identifiant auCentre.

...
<div id="auCentre">
<div id="annonce">
<div onclick="Javascript:document.getElementById('annonce'). ... 'hidden';" style="cursor:pointer; border-bottom:2px solid #dddddd; margin-bottom:15px;">X<div style="float:right; font-size:20px;">Le livre Javascript</div></div>
<a href='https://www.bonbache.fr/... livres-javascript-pdf.php' target='_blank' style='text-decoration-none;'><u><img src="img/livre-javascript.png" /></u></a>
</div>
<span style="text-decoration:underline; cursor:pointer;">Afficher l'annonce</span>
<br /><br />
Le <strong>code Javascript</strong> est ce que l'on appelle un<strong>code client</strong>.... pour fournir des résultats contextuels.
<br /><br />
Lorsque nous développons des <strong>sites internet</strong>,...d'allonger les temps de réponse, voire de faire tomber le serveur.
<br /><br />
En d'autres termes, tout ce qui peut être calculé autrement que par le serveur...ou gérer les cookies par exemple.
</div>
...


L'identifiant du calque à cliquer et glisser est annonce. C'est par ce nom que le JQuery va pouvoir se l'approprier en tant qu'objet pour le manipuler. Dans la partie supérieure de ce calque, c'est un événement sur la croix (onclick) qui déclenche un code Javascript. Celui-ci influe simplement sur l'attribut Css visibility pour le masquer sur demande.



Drag And Drop
Il est temps de passer à l'action. Et nous allons le voir, avec ces librairies JQuery, la réalisation est un jeu d'enfants.
  • Dans la section de script en bas de la page Html, ajouter les instructions suivantes :
<script type="text/javascript" language="javascript">
$(function()
{
$("#annonce").draggable();
}
);

</script>


Et c'est tout !! Il nous reste encore à vérifier, certes. Mais c'est effectivement avec une futilité déconcertante que nous pouvons allouer de telles propriétés à un calque Html grâce aux librairies JQuery. Le dollar ($) est un alias qui permet de distinguer les objets et variables JQuery des autres éléments comme les éléments Html. Dans ce cas précis ($("#annonce" )), il permet de piloter un élément Html en en prenant possession pour lui appliquer des méthodes JQuery, dans une fonction JQuery : $(function()...).
  • Enregistrer les modifications (CTRL + S) et revenir sur le navigateur Web (ALT + Tab),
  • Rafraîchir la page Web avec la touche F5 du clavier,
  • Puis, cliquer et glisser le calque de l'annonce vers la droite pour le déplacer,
Il ne faut pas s'en saisir par la partie supérieure ce qui aurait pour effet de le masquer, en raison du code Javascript qui est déclenché au clic. Quoiqu'il en soit et comme vous pouvez le voir, le calque de l'annonce réagit désormais comme n'importe quelle boîte de dialogue qu'il est possible de disposer à souhait pour des raisons de confort.

Et pour cela, c'est une simple méthode JQuery qui a conféré les propriétés nécessaires au calque pointé. Certes dans ce contexte, les librairies que nous embarquons sont trop lourdes et mériteraient d'être épurées. Nous n'en utilisons qu'une infime partie. Mais dans le cas d'un site Web exploitant massivement les fonctionnalités permises par le JQuery, ces déclarations uniques sont tout à fait justifiées.



Afficher le calque masqué
Même si nous n'avons pas vraiment commis d'effort pour mettre en place cette solution de Drag And Drop, nous proposons de parachever la solution en permettant à l'utilisateur d'afficher de nouveau le calque de l'annonce lorsque celui-ci a été préalablement masqué.
  • Cliquer sur le calque en haut à gauche de l'annonce pour le masquer,
  • Puis, revenir dans le code Html de la page Web,
L'élément Html qui nous intéresse est le Span encapsulant le tout premier texte du contenu : Afficher l'annonce. Nous devons simplement lui ajouter un gestionnaire déclenchant un code Javascript inversant la valeur de l'attribut Css visibility pour le calque d'identifiant annonce.
  • Dans la balise du span, ajouter le gestionnaire onclick suivant :
...
<span style="text-decoration:underline; cursor:pointer;" onclick = "Javascript: document.getElementById('annonce').style.visibility = 'visible';">Afficher l'annonce</span>
...
  • Enregistrer les modifications et revenir sur le navigateur Web,
  • Rafraîchir la page avec la touche F5 du clavier,
  • Fermer le calque de l'annonce en cliquant sur sa croix,
  • Puis, cliquer sur le lien Afficher l'annonce pour le voir réapparaître.
Il se rend disponible aussitôt en effet tout en ayant conservé ses propriétés JQuery. Pour preuve, vous pouvez continuer de le déplacer à votre guise.

Glisser un calque Html au-dessus du contenu de la page Web en Javascript et JQuery

 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn