M2202 Algorithmique TD 5 : Une bannière animée interactive



Documents pareils
.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15

Guide de réalisation d une campagne marketing

Tutoriel : Feuille de style externe

SPÉCIFICATIONS TECHNIQUES DES FORMATS PUBLICITAIRES

Malgré son aspect spartiate, Freeplane offre de nombreuses fonctionnalités en particulier dans le domaine de la diffusion des cartes sur le Web.

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado

TP JAVASCRIPT OMI4 TP5 SRC

HTML, CSS, JS et CGI. Elanore Elessar Dimar

Initiation à html et à la création d'un site web

Normes techniques 2011

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

Optimiser pour les appareils mobiles

1. La notion de cascade

Grille fluide. Une grille fluide sert à structurer la mise en page, la rendre harmonieuse et faciliter le passage au responsive web design

ING & NEWSLETTER NEWSLETTER RESPONSIVE

101 Réaliser et publier un site WEB

RESPONSIVE WEB DESIGN

Le stockage local de données en HTML5

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Comment développer et intégrer un module à PhpMyLab?

Intégrateur Web HTML5 CSS3

CREER UN PETIT SITE WEB EN COMPOSANT DES PAGES HTML

Pack Fifty+ Normes Techniques 2013

Travaux dirigés n 10

Séance d ED n 5 : HTML et JavaScript

Création de site Internet avec Jimdo

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Responsive Web Design. La Rochelle, Avril 2014

Freeway 7. Nouvelles fonctionnalités

PEPSITE EST COMPATIBLE UNIQUEMENT SUR IE10+

PHP et les Bases de données - Généralités

JOOMLA 1.5 avancé SUPPORT DE COURS + annexe

Programmation Web. Madalina Croitoru IUT Montpellier

HTML5 et CSS3 pour des sites Responsive Web Design

Création de maquette web

Présentation du Framework BootstrapTwitter

Parcours guidé : créer des pages simples au format html avec Nvu 28/1/10

SOUTENANCE ORALE RAPPORT DE PROJET D INFORMATIQUE

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

KompoZer. Composition du site : _ une page d'accueil : index.html. _ une page pour la théorie : theorie.html. _ une page pour les photos : photos.

Créer des étiquettes avec les adresses d'un tableau Calc

Optimiser les performances d un site web. Nicolas Chevallier Camille Roux

1 Année LMD-STSM Algorithmique et Programmation. Série de TD 2

Créer une base de données vidéo sans programmation (avec Drupal)

RAPPORT D'OPTIMISATION DU SITE INTERNET

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Nouveautés joomla 3 1/14

SYSTÈMES D INFORMATIONS

L informatique et la formation en direction des élus

Un jour, une question Réponse à une problématique issue de la liste GTA *

Attaques de type. Brandon Petty

Pour en expliquer le principe, on se limitera à deux exemples :

Relever le défi du Web mobile

HTML. Notions générales

Manuel d utilisation du module Liste de cadeaux PRO par Alize Web

TD : Codage des images

ENVOI EN NOMBRE DE Mails PERSONNALISES

SPIP. Gestion de la performance dans SPIP. Préoccupa)on historique

Utilisation du visualiseur Avermedia

Les dossiers, sous-dossiers, fichiers

Bernard Lecomte. Débuter avec HTML

Un mini-site internet en une après-midi

LECON 2 : PROPRIETES DE L'AFFICHAGE Version aout 2011

WEBSEMINAIRE INTRODUCTION AU REFERENCEMENT

Open Office - Présentation

Tutoriel TYPO3 pour les rédacteurs

Gestionnaire de champs PRO

UN SITE WEB RESPONSIVE EN UNE HEURE?

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Administration du site (Back Office)

Introduction à Expression Web 2

Livre Blanc WebSphere Transcoding Publisher

les Formulaires / Sous-Formulaires Présentation Créer un formulaire à partir d une table...3

Manuel du composant CKForms Version 1.3.2

Spécificités Techniques créations publicitaires

TP 5 Les CMS, la forme et le fond Internet et Outils (IO2)

Projet en nouvelles technologies de l information et de la communication

CONCEPTION D S ADAPTATIFS

UTILISATION DE L'APPLICATION «PARTAGE DE FICHIERS EN LIGNE»

Survol des nouveautés

Performance web. Mesurer. Analyser. Optimiser. Benjamin Lampérier - Benoît Goyheneche. RMLL Beauvais. 8 Juillet 2015

SPECIFICITES TECHNIQUES DES FORMATS PUBLICITAIRES

Les outils de création de sites web

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Module Criteo Tags et Flux pour Magento

Devenez un véritable développeur web en 3 mois!

PLAN. Qui peut faire quoi? Présentation. L'internaute Consulte le site public

Formation HTML / CSS. ar dionoea

Webmaster / Webdesigner / Wordpress

Création d'un site Internet dynamique avec HTML-CSS ou un CMS Formation à distance sur le réseau Pyramide

La Clé informatique. Formation Excel XP Aide-mémoire

GESTION DU LOGO. 1. Comment gérer votre logo? Format de l image Dimensions de l image Taille de l image 9

Notice pour Visiteur du Site Perso

Éditeur WordPress. Illustration 1. Kerniolen Pluneret Tel : Mob : info@formation-auray.fr

Description des pratiques à adopter pour la mise à jour du layout en utilisant le gestionnaire de conception de Sharepoint 2013

Transcription:

M2202 Algorithmique TD 5 : Une bannière animée interactive Nous verrons dans ce TD comment : enchainer une suite d'images en fondu dans une bannière ; afficher une image spécifique de cette bannière par survol d'un lien. Une bannière est un élément souvent utilisé dans les sites. Il permet d'afficher une série d'images dans une zone donnée, généralement située dans l'en-tête du site. Nous commencerons par créer une structure de site minimaliste permettant d'accueillir : un wrapper (div) qui permettra de centrer le site l'en-tête qui contiendra un logo et la bannière (les images seront créées en JS) une section avec article et liens/texte pour l'affichage d'une image donnée. html css Cette page contiendra comme on l'a vu les éléments utiles à la structure prévue. Le style permettra (site.css) quant à lui de mettre en forme les éléments. On y insère également l'accès à la librairie jquery (ici en relatif, mais on peut pour l'exercice utiliser celle hébergée sur le site de Google) ainsi qu'à notre propre page js (site.js). Créez la page html5.. <!DOCTYPE html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>bannière animée</title> <link rel="stylesheet" href="site.css" /> <script type="text/javascript" src="jquery-1.11.0.min.js"></script> <script type="text/javascript" src="site.js"></script> </head>

<body> <div id='wrapper'> <header id='entete'> <div id='logo' class='floatleft'> <img width='285px' src='duck.png' alt='logo'> </div> <div id='banniere' class='absolu'></div> </header> <section id='contenu'> <h1>une bannière animée et interactive JS - CSS2</h1> <article id='navi'> <a href="#" id='1'>une cigogne.</a> <a href="#" id='2'>des flamands roses.</a> <a href="#" id='3'>un tigre.</a> <a href="#" id='4'>un paon.</a> <a href="#" id='5'>un zoziau.</a> </article> </section> </div> </body> </html> et la page CSS.. @charset "utf-8"; /* CSS Document */ body{ margin:0; font-family:arial, Helvetica, sans-serif;

a{ text-decoration:none; color:black; #wrapper{/* centré larg. Fixe */ width:960px; margin:auto; #banniere{ margin-left:285px;/* décalage / logo flottant à gauche */ width:675px; height:285px; #logo{/* hauteur imposée */ height:285px; #contenu{ clear:left;/* le contenu ne doit pas glisser sous les flottants */.absolu{ position:absolute.etire{/* l'élément occupe toute la place du contenant (??Déformation) width:100%; height:100%;

.floatleft{//classe des flottants à gauche float:left; Et jquery Nous reprenons la fonction charge_image() du TD précédent, les fonctions change_image et $(document).ready() sont modifiées pour prendre en compte les nouvelles fonctionnalités. Nous créons deux éléments imgs pour pouvoir réaliser le fondu de l'un par dessus l'autre. Les deux img ont dinc un z-index de 1 et 2 respectivement. Lors du changement d'image : 1. on affecte la nouvelle source à l'img du dessous ; 2. on fait disparaître celle du dessus en fondu, ce qui révèle celle d'en-dessous dans une sorte de fondu enchaine ; 3. Le fondu terminé, on inverse les z-index ; 4. Enfin on ramène l'opacité de l'image 'fondue'.. // JavaScript Document //Déclaration de variables var nb = 6;//nb d'images var actuel = 0;//image courante var imgsrep = 'images/'; var imgs = new Array();//tableau des images pour préchargement var t; // objet timer var img1, img2;// objets jquery pour les images var tempo = 5; // intervalle de changement d'image - en sec var fondu = 1 ; // temps de fondu - en sec

//Création du tableau des sources //Les images sont nommées image0.jpg, image1.jpg,.. for (i=0;i<nb;i++){ imgs.push(imgsrep + 'image' + i + '.jpg'); function charge_images(){ //on créé un img jquery virtuel dont on affecte la source -> provoque le chargement dans le cache $(imgs).each(function(){//pour chaque élément du tableau d'images -> pour chaque image $("<img/>").src = imgsrep + this; //on affecte à la source d'un img virtuel la valeur de l'élément(this) ); Dans la mesure où les méthodes fadein, fadeout (comme slidedown et slideup) s'exécutent en mode asynchrone (le code continue à s'exécuter), on utilise le paramètre complete de la méthode fadeout, qui s'exécute lorsque le fondu s'est terminé!! //fonction changement d'image function change_image(a){// a sera l'id du lien survolé if (a>0){//si a positif actuel=a-1;// a-1 car incrémenté ensuite actuel++; //on incrémente actuel( if(actuel===nb){actuel=0; //Test de dépassement //Affectation de la nouvelle source à l'image du dessous if(img1.css('z-index')=='2'){//variables locales i1 et i2 pour plus de clareté i1 = img1; i2 = img2;

else{ i2 = img1; i1 = img2; i2.attr('src', imgs[actuel]);// changement de source i1.fadeout(fondu*1000, function(){//disparition en fondu PUIS i2.css('z-index', '2');//Echange des z-index i1.css('z-index', '1'); i1.fadein(100);//on peut réafficher l'image ); Nous créons les deux objets images dans la méthode $(document).ready() en leur affectant les attributs nécessaires à leur manipulation, les deux éléments sont ensuite insérés dans la div 'banniere' au même endroit mais avec un empilement spécifique. //installation de la bannière $(document).ready(function(){//lorsque la page est chargée //préchargement des images charge_images(); //création de 2 objets img //img1 img1 = $('<img />', { src : imgs[1], class : 'etire', css : { display : 'block', position : 'absolute', zindex : '1' );

//img2 img2 = $('<img />', { src : imgs[0], class : 'etire', css : { display : 'block', position : 'absolute', zindex : '2' ); //Insertion de l'élément dans la bannière img1.appendto('#banniere'); img2.appendto('#banniere'); //Animation : Démarrage du timer t = setinterval(change_image, tempo*1000); //Survol des liens de l'article $('#navi a').mouseenter(function(){ //l'id renvoie à l'image -> à actuel change_image(parseint($(this).attr('id'))); ); ); Un gestionnaire de survol est affecté aux liens appartenant à l'élément dont l'id vaut 'navi'. A l'entrée dans le lien, on passe l'id du lien (c'est en fait le numéro de l'image) converti en entier (pour pouvoir comparer et calculer) à la fonction change_image, ce qui modifie la valeur de la variable actuel et affiche l'image correspondante!!