Avoir un site Web à la fois réactif et interactif est une exigence non écrite pour chaque propriétaire de site Web. Les avantages d'avoir un site Web interactif qui s'adapte parfaitement à n'importe quelle taille d'écran ne peuvent pas être surestimés.

Vous devez créer une expérience personnalisée pour chaque utilisateur qui visite votre site Web, et avec plusieurs propriétés CSS et quelques fonctions JavaScript, vous pouvez le faire.

Dans cet article de didacticiel, vous apprendrez comment rendre votre site Web HTML et CSS réactif et interactif.

Rendre votre site Web interactif

Lorsque vous créez un site Web, vous commencez de haut en bas. Par conséquent, rendre votre site Web interactif est un processus qui devrait également commencer au sommet. Prendre ce site portfolio nous avons construit à titre d'exemple. Il a un design épuré mais il n'est pas complètement interactif.

Chaque élément de menu change de couleur lorsque vous le survolez, mais comment savoir sur quelle section du site Web vous vous trouvez? Eh bien, il y a deux façons de le faire: activer les éléments de menu avec

instagram viewer
défilement et sur clic événements.

L'activation d'un élément de menu à chaque fois que vous faites défiler un site Web vers le haut ou vers le bas nécessitera l'utilisation d'une fonction JavaScript que vous pouvez appeler "activeMenu". Cette fonction aura besoin d'accéder aux éléments de menu dans la barre de navigation, ainsi qu'à chaque section du site Web. Heureusement, vous pouvez y parvenir en utilisant le querySelectorAll sélecteur DOM.

Dans le répertoire de votre projet, vous devrez créer un nouveau fichier JavaScript et le lier à votre fichier HTML à l'aide de la ligne de code suivante :


Dans un scénario étiquette, le src value est le nom du fichier JavaScript, qui dans l'exemple ci-dessus est main.js.

Le fichier main.js

// en utilisant javascript pour activer l'élément de menu onscroll
const li = document.querySelectorAll(".links");
const sec = document.querySelectorAll("section");

fonction ActiveMenu(){
laissez len=sec.length;
while(--len && window.scrollY + 97 < sec[len].offsetTop){}
li.forEach (ltx => ltx.classList.remove("actif"));
li[len].classList.add("actif");
}
menuactif();
window.addEventListener("scroll", activeMenu);

le querySelectorAll le sélecteur dans le code ci-dessus récupère tous les éléments de menu en utilisant le liens classer. Il saisit également toutes les sections du site Web en utilisant le section étiqueter. le activerMenu La fonction prend ensuite la longueur de chaque section et supprime ou ajoute une variable « active » en fonction de la position de défilement d'un utilisateur.

Pour que le code ci-dessus fonctionne, vous devrez mettre à jour la feuille de style du site Web du portefeuille pour inclure le code suivant dans la section de la barre de navigation :

#navbar .menu li.active a{
couleur: #fff ;
}

Activation des éléments de menu en un clic

 //utilisation de jquery pour activer l'élément de menu au clic
$(document).on('click', 'li', function(){
$(this).addClass('actif').siblings().removeClass('actif')
})

L'ajout du code ci-dessus à votre fichier JavaScript activera chaque section lorsqu'un utilisateur clique sur l'élément de menu approprié. Cependant, il utilise jQuery (une bibliothèque JavaScript) qui accomplit cette tâche avec une quantité minimale de code.

Un problème que vous pourriez rencontrer lorsque vous activez chaque élément de menu en cliquant est que la barre de navigation couvrira la partie supérieure de chaque section. Pour éviter cela, vous pouvez simplement insérer le code suivant dans la section utilitaire de la feuille de style :

section{
scroll-margin-top: 4.5rem;
}

Le code ci-dessus garantira que lorsque vous accédez à chaque section en cliquant, la barre de navigation restera à 4,5 rem au-dessus de chaque section (ou 72px). Une autre fonctionnalité intéressante à ajouter à votre site Web est défilement fluide, que vous pouvez accomplir avec le code CSS suivant :

html {
comportement de défilement: lisse ;
}

Rendre votre page d'accueil interactive

Sur la plupart des sites Web, un utilisateur verra son premier bouton sur la barre de navigation ou la page d'accueil. En plus de ressembler à un appel à l'action, un bouton doit également être interactif. Un excellent moyen d'y parvenir est avec le CSS :flotter sélecteur, qui attribue un nouvel état à un élément chaque fois que la souris d'un utilisateur passe dessus.

Sur le site du portfolio, le seul lien sur la page d'accueil a le btn class (ce qui lui donne l'apparence d'un bouton). Ainsi, pour rendre ce bouton interactif, vous pouvez simplement affecter le :flotter sélecteur au btn classer.

Utilisation du sélecteur :hover

 .btn: survoler{
arrière-plan: #fff ;
Couleur bleue;
bordure: bleu uni ;
rayon de bordure: 5px ;
}

L'ajout du code ci-dessus à la section utilitaire du site Web du portefeuille fera passer le bouton d'un état à un autre lorsque vous le survolez.

Une autre fonctionnalité intéressante pour la page d'accueil est une animation de saisie, qui utilise tapé.js (un script d'animation de saisie jQuery).

Utilisation de typed.js

// script d'animation de saisie de texte jquery
var typé = new typé(".typing", {
chaînes: ["Développeur de logiciels"],
typeVitesse: 100,
Vitesse de retour: 60,
boucle: vrai
});

Après avoir ajouté le code ci-dessus à votre fichier JavaScript, vous devrez apporter la modification suivante au code HTML :

Et je suis un

Dans le code ci-dessus, vous remplacez le texte « Développeur de logiciels » dans le code d'origine par la classe « dactylographie », créant ainsi l'animation de saisie.

Rendre d'autres sections de votre site Web interactives

Création d'une classe utilitaire de bouton et utilisation du flotter selector s'assurera que chaque section de votre page Web qui a un bouton est interactive. Les propriétés de transition et de transformation CSS ont également d'excellentes fonctionnalités d'animation que vous pouvez ajouter à votre site Web.

Si vous avez une galerie ou une section d'images sur votre site Web, vous pouvez utiliser les deux propriétés mentionnées ci-dessus pour créer un effet de survol sur vos images. L'ajout du code CSS suivant aux images de la section projet du site Web du portfolio créera un effet de transformation sur les images de la section :

.img-conteneur img{
largeur maximale: 450 px ;
transition: toutes les 0,3 s d'allègement ;
curseur: pointeur ;
}

.img-container img: hover{
transformation: échelle (1.2) ;
}

Rendre votre site Web responsive

Lors de la création d'un site Web réactif, vous devez prendre en compte quatre types d'appareils différents: ordinateurs de bureau, ordinateurs portables, tablettes et smartphones. De plus, chacun de ces types d'appareils propose également une gamme de tailles d'écran différentes, mais ces quatre catégories sont un bon point de départ.

En rapport: Comment utiliser les requêtes multimédias en HTML et CSS pour créer des sites Web réactifs

Dans son état actuel, le site Web du portefeuille s'affiche bien sur les ordinateurs de bureau et les ordinateurs portables. Ainsi, le rendre réactif signifiera créer une mise en page personnalisée pour les tablettes et les smartphones.

Le meilleur moyen d'obtenir un design réactif avec CSS et HTML consiste à utiliser des requêtes multimédias. Vous pouvez placer une requête multimédia dans un fichier CSS ou le HTML lien étiqueter. Cette dernière approche facilite l'évolutivité, et c'est aussi la méthode que je vais démontrer.

Vous devrez créer deux fichiers CSS supplémentaires. Le premier fichier CSS créera la structure de mise en page pour les petits ordinateurs portables et tablettes en mode paysage. Il aura une largeur maximale de 1100px, comme vous le voyez dans la balise de lien suivante :


L'insertion de la ligne de code ci-dessus dans le diriger balise de votre fichier HTML (ou dans ce cas le fichier du site Web du portefeuille) garantira que chaque appareil avec une largeur d'écran de 1100px et sous utilisera le style dans le écran large.css déposer.

Le fichier widescreen.css

/* Accueil */
#navbar .container h1 a span{
affichage: aucun ;
}

#home .home-content .text-3 span{
couleur: #000000 ;
}

/* Portefeuille */
.projets{
justifier-contenu: centre ;
}
.projet{
flexible: 0 ;
}

/* Sur */
.about-content{
flex-direction: colonne ;
}

/* Contact */
.contact-contenu{
flex-direction: colonne ;
}

Le code ci-dessus produira une mise en page réactive sur les appareils avec des tailles d'écran de 1100px et moins, comme vous pouvez le voir dans la sortie ci-dessous :

Le deuxième fichier CSS créera la structure de mise en page pour smartphones et tablettes en mode portrait. Il aura une largeur maximale de 760px, comme vous pouvez le voir dans la balise de lien suivante :


Le fichier mobile.css

/* Barre de navigation */

#navbar .container h1 a span{
affichage: aucun ;
}

#navbar .container .menu{
marge gauche: 0rem ;
}

#menu-jambon{
largeur: 35px ;
hauteur: 30px ;
marge: 30px 0 20px 20px ;
curseur: pointeur ;
}
#navbar .container .menu-wrap .menu{
affichage: aucun ;
}

.bar{
hauteur: 5px ;
largeur: 100 % ;
couleur d'arrière-plan: #ffffff ;
bloc de visualisation;
rayon de bordure: 5px ;
transition: 0,3 s d'aisance ;
}
#bar1{
transformer: translateY(-4px);
}
#bar3{
transformer: translateY(4px);
}

/* Accueil */
#domicile{
affichage: flexible ;
arrière-plan: url("/images/home.jpg") centre sans répétition ;
hauteur: 100vh ;
}

#home .conteneur{
marge: 6rem 1rem 2rem 1rem ;
rembourrage: 2rem ;
}

#home .home-content .text-1{
taille de la police: 20px ;
marge: 1,2 rem ;
}
#home .home-content .text-2{
taille de la police: 45 px ;
poids de police: 500 ;
marge: 1rem ;
}
#home .home-content .text-3{
taille de la police: 22px ;
marge: 1,2 rem ;
}
#home .home-content .text-3 span{
couleur: #0000ff ;
font-weight: 600 ;
}

#home .conteneur{
marge gauche: 4,5 rem ;
}

/* Sur */
#à propos du .conteneur{
remplissage: 0 ;
}

/* Contact */
#contacter .conteneur{
remplissage: 0 ;
}

Le fichier ci-dessus produira la mise en page de smartphone réactive suivante :

Autres façons de créer des sites Web interactifs réactifs

Savoir comment rendre votre site Web réactif et interactif en utilisant CSS et HTML est une grande compétence à avoir. Mais ce ne sont pas les seules méthodes pour rendre votre site Web réactif et interactif.

De nombreux frameworks frontaux et même des modèles sur des services comme Joomla facilitent les conceptions interactives réactives.

15 modèles Joomla élégants pour les sites Web réactifs

Vous cherchez à créer un site Web pour votre entreprise ou votre blog? Essayez ces modèles Joomla.

Lire la suite

PartagerTweeterE-mail
Rubriques connexes
  • La programmation
  • HTML5
  • CSS
  • Développement web
  • JavaScript
A propos de l'auteur
Kadeisha Kean (37 articles publiés)

Kadeisha Kean est un développeur de logiciels Full-Stack et un rédacteur technique/technologique. Elle a la capacité distincte de simplifier certains des concepts technologiques les plus complexes; produire du matériel qui peut être facilement compris par tout novice en technologie. Elle est passionnée par l'écriture, le développement de logiciels intéressants et les voyages à travers le monde (à travers des documentaires).

Plus de Kadeisha Kean

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner