IUT de Montreuil - Gaétan Darquié
Le concept : créer une interface qui s'adapte dynamiquement aux différents écrans.
Appliquer à une feuille de style des options différentes selon des conditions liées aux types d'appareil et aux tailles d'écran.
Par exemple, si l'écran d'un appareil mesure moins de 768 px, on lui applique des éléments de style adaptés.
Le nombre de colonnes change selon la taille de l'écran
Pour des écrans de grande taille, nous affichons 4 colonnes:
Pour des écrans de taille moyenne, nous n'affichons plus que 3 colonnes:
Certains éléments moins importants peuvent disparaitre quand l'écran devient plus petit
Dans cet exemple, on passe à deux colonnes et les cases "projets" et "cours" ont disparu.
Pour assurer un affichage adapté en responsive, ajouter la ligne:
<meta name="viewport" content="width=device-width, initial-scale=1">
L'application prend désormais en compte la largeur de l'écran de l'appareil qui affiche.
Le viewport correspond à l'espace où le navigateur affiche le contenu d'une page
Cette ligne permet de prendre en compte la taille réelle de l'écran comme condition.
user-scalable=no
permet d'empêcher de zoomer sur la page.
Ne pas hésiter à rajouter une échelle maximum maximum-scale=1
Jusqu'à présent, nous avons vu les classes "col-md-X".
"col" pour colonne, "md" pour middle, c'est à dire les colonnes pour un écran de taille moyenne.
Bootstrap divise les tailles d'écran en quatre catégories.
Une classe existe pour chaque taille.
Créer une grille responsive qui affiche 4 colonnes sur les grands écrans, 3 sur les moyens, 2 sur les petits et 1 sur les portables
Un élément se retrouve tout seul en bas quand nous passons à un affichage md.
Peut poser un problème si plusieurs lignes se suivent.
Mettre 4 colonnes en md comme en lg
Il est aussi possible de fusionner plusieurs rows pour faire en sorte que les éléments se collent les uns aux autres.
Créer un fichier .js.
Ajouter un lien vers le fichier dans le fichier .html avec la balise script, soit :
Par exemple:
<script src="function.js"/>
alert("hello world");
function NomFonction(){ alert("hello world"); }
Sélectionner un élément HTML avec le JS
document.getElementById("monElement").innerHTML
D'un côté, une page HTML avec une div ayant pour id "maDiv" et comme contenu "bonjour".
Je veux récupérer cette valeur pour l'afficher dans une pop up avec JS et alert.
Comment dois-je m'y prendre?
var document.getElementById("monElement").innerHTML
Comment créer un bouton qui permette quand on clique dessus de faire changer le texte d'une div appelée "maDiv"?
L'évènement onclick = quand on clique sur l'élément, déclenche une action.
<button onclick='maFonction();'>Mon boutton</button>
Quand on clique sur le bouton, on enclenche une fonction qui change l'innerHTML de l'élément sélectionné.
Une librairie javacript qui, entre autres, facilite la syntaxe au niveau des sélecteurs et qui permet d'intégrer facilement des effets.
Voir le site.Plus besoin de "document.getElementById...", il suffit désormais de
$("#NomId").html()
.
# quand il s'agit d'un ID, . quand il s'agit d'une classe
var monTexte= document.getElementById("maDiv");
alert(monTexte.innerHTML);
var monTexte = $("#maDiv").html();
alert(monTexte);
Il est possible d'associer un event à une fonction directement dans le javascript mais nous pouvons également continuer à les placer das le html exactement comme avant.
Effet d'animation pour faire apparaitre/disparaitre des éléments.
La fonction delay() accompagnée d'une durée en int permet de déclencher en retard la fonction à laquelle elle est associée.
$("#monItem").delay(3000).fadeIn(3000);
Quand l'utilisateur arrive sur la page, il n'y a qu'un boutton.
Quand il clique sur le bouton, ce dernier disparait et une grille avec quatre éléments apparait.
Les quatre éléments apparaissent l'un après l'autre de gauche à droite.
Voir le travail demandé.Jusqu'ici, tout va bien.
Jusqu'ici, tout va bien.
Pour que le fade In soit possible, il faut faire dsparaitre au préalable les éléments.
Il est important que : display = "none"
Une solution simple consiste à créer une classe "cache" et à appeler cette classe à chaque fois qu'il est nécessaire.
A savoir qu'il est également possible d'utiliser Jquery pour changer le display
$("#maDiv").css("display","none");
Ajouter la classe "cache" au .container
Ajouter un fade In de ".container" dans le script
Cette fois-ci, il faut rendre invisible chacun des articles.
Ensuite, il faut les faire apparaitre les uns après les autres.
Une solution consisterait à donner à chaque article un id.
Nous pouvons utiliser les sélecteurs :
element:first child
qui permet de sélectionner le premier fils d'un élementarticle:nth-child(n)
qui permet de sélectionner le fils numéro n.Ensuite, c'est simple, il suffit de rajouter le bouton.
L'ensemble des actions sont regroupées dans une fonction qu'on appelle quand on clique.
On rajoute une ligne au début de la fonction pour faire disparaitre le bouton.
A partir de notre exemple, il est possible de s'amuser à :
Il existe beaucoup d'autres sélecteurs, events et effets (animate, fadeTo) (et encore d'autres choses : ajax...) avec Jquery.
N'hésitez pas à consulter la documentation en ligne pour en tester toutes les possibilités.
Faire le tutoriel sur jquery proposé par le site Codeacademy.