En poursuivant votre visite de ce site, vous acceptez l'utilisation de cookies pour permettre ses différents services. Voir les Mentions légales.
 
 
 
Vous êtes ici :   Accueil » Édito Mobile Friendly avec Camera
 
 
 
    Imprimer la page...
    Imprimer la section...

Édito Mobile Friendly avec Camera

Utiliser Camera dans un diaporama ÉDITO "Mobile Friendly"

Le slider ci-dessous utilise les fonctions natives de Camera, et d'autres instructions qui lui permettent de générer une étiquette "thème" mais surtout une instruction en javascript lui permettant, en fonction de la taille de l'écran d'affichage, de placer le texte au dessous de l'image et non plus à sa droite : Ce slider devient donc "Mobile Friendly" ! Testez son affichage sur smartphone...

La demande initiale de ce travail a été faite par OMT (développeur du plugin "sommaire"), merci à lui de m'avoir fait chercher ces astuces...

carambole
Billard français
» règles
» ff billard
américain
Billard américain
» règles
» ff billard
snooker
Billard snooker
» règles
» ff billard
blackball
Billard blackball ou 8-pool
» règles
» ff billard

Le code, ci-dessous est commenté le plus possible. Vous pouvez vous référer utilement au tutoriel initial de Camera afin d'en comprendre les différentes options.

Cette première partie est à placer dans le code source au début de l'article, de la page, de la boite libre...

<style type="text/css">
.camera_wrap { /* bordure : epaisseur, nature, couleur, arrondi */
    border: 0px solid rgb(255, 255, 255);
    border-radius: 0px;
}
.camera_prev, .camera_next, .camera_commands {    /*position navigation*/
    top: 90%;
}
.camera_caption > div {
    padding : 35% 10% 5% 10%; /*marges intérieures conteneur texte*/
}
.camera_caption { /*texte général*/
    right:0; /*placement texte*/
    display: block;
    position: absolute;
    width: 30%; /*largeur*/
    background: rgba(25, 25, 25, 0.7); /*couleur de fond et opacité*/
    color: rgb(255, 255, 255); /*couleur texte*/
    font-family : Verdana, Arial, Helvetica, sans-serif; /*police*/
    font-weight: 300; /*épaisseur police*/
    font-size : 3.5rem; /*taille police*/
}

@media screen and (min-width: 760px), screen and (min-device-width: 760px) { /* au delà de 760px de largeur (WEB) */
.camera_caption { /*texte général*/
    top:0; /* pour réserver la position en haut à cette disposition particulière*/
}

} /* fin dispositions min-width: 760px (WEB) */

.camera_caption theme { /*étiquette thème*/
    position: absolute;
    width:100%; /*largeur // à la zone caption*/
    height:4rem; /*hauteur*/
    border-radius:.5rem; /*arrondis*/
    text-align:center; /*centrage texte*/
    background: #FF0000; /*couleur de fond*/
    color:#FFFF80; /*couleur texte*/
    text-transform: lowercase; /*minuscules*/
    font-weight: 200; /*épaisseur police*/
    font-size : 3rem; /*taille police*/
    top: 10%; /*position haut*/
    left: -40%; /*position gauche*/
}
.camera_caption a { /*lien dans le texte*/
    color: rgb(237, 135, 35); /*couleur texte*/
    font-variant: small-caps; /*petites majuscules*/
    font-weight: 100; /*épaisseur police*/
    font-size : 2.5rem; /*taille police*/
    padding-left:10%; /*marge intérieure gauche*/
}
.camera_caption a:hover { /*lien survolé dans le texte*/
    color: rgb(237, 237, 0); /*couleur texte*/
    text-decoration : underline; /*soulignage*/
}
.camera_wrap .camera_pag .camera_pag_ul { /* position des boutons de pagination */
    text-align: center; /*centrage texte*/
}
.fluid_container { /* reglage max en largeur et % d'occupation */
    margin: 0 auto; /*marges extérieures*/
    max-width: 1000px; /* valeur maximum du container de Camera */
    width: 100%; /*largeur*/
}

@media screen and (max-width: 760px), screen and (max-device-width: 760px) { /* inférieur à 760px de largeur  (MOBILE)*/
.camera_prev, .camera_next, .camera_commands {    /*position navigation*/
    top: 10%;
}
.camera_caption > div {
    padding : 5% 10% 5% 10%; /*marges intérieures conteneur texte*/
}
.camera_caption { /*texte général*/
    bottom:0; /*placement texte*/
    font-size : 3rem; /*taille police*/
    width: 100%; /*largeur*/
    height:50%; /*hauteur en % de la hauteur totale (image + caption) !!forcément inférieur à 100%!! */
}
.camera_caption theme { /*étiquette thème*/
    width:50%; /*largeur // à la zone caption*/
    top: -5%; /*position haut*/
    left: 5%; /*position gauche*/
}

} /* fin dispositions max-width: 760px (MOBILE) */

</style>

<script>

if (window.matchMedia("(min-width: 760px)").matches) {  

  /* Pour écrans de dimension supérieure ou égale à 760 px de largeur  (WEB)*/
 
jQuery(function(){   /* initialisation camera_wrap_1 */
            jQuery('#camera_wrap_1').camera({
                alignment : 'centerLeft', // alignement de l'image
                hover : true, // true / false : pause au survol
                loader : 'none', //Type de loader ou sans loader : pie, bar, none
                fx : 'topLeftBottomRight, bottomRightTopLeft, simpleFade', //Type de transition
                height: '52.5%', // ratio de l'affichage : H / L exprimé en %
                time : 4000, //En millisecondes : entre la fin d'un effet et le début du suivant (temps d'affichage du loader s'il est présent)
                transPeriod : 500, //Temps d'affichage d'une transition en  millisecondes
                pagination : true // true / false : présence des boutons de pagination
            });
        });
        

 } else { 

  /* Pour écrans de dimension inférieure à 760 px de largeur (MOBILE) */
 
jQuery(function(){   /* initialisation camera_wrap_1 */
            jQuery('#camera_wrap_1').camera({
                alignment : 'topCenter', // alignement de l'image
                navigationHover : false, //affichage permanent boutons de navigation
                mobileNavHover : false, //affichage permanent boutons de navigation mobile (ces 2 lignes indispensables!!)
                loader : 'none', //Type de loader ou sans loader : pie, bar, none
                fx : 'topLeftBottomRight, bottomRightTopLeft, simpleFade', //Type de transition
                height: '150%', // ratio des images : 100H/(100-%HauteurCaption)/L exprimé en %
                time : 4000, //En millisecondes : entre la fin d'un effet et le début du suivant (temps d'affichage du loader s'il est présent)
                transPeriod : 500, //Temps d'affichage d'une transition en  millisecondes
                pagination : true // true / false : présence des boutons de pagination
            });
        });
        

  }  

</script>

Dans la partie <style>, les instructions @media screen permettent de modifier les réglages en fonction de la largeur d'affichage.

Dans la partie <script>, l'instruction window.matchMedia permet de choisir quel script de Camera appeler en fonction de la largeur d'affichage.

C'est dans l'utilisation judicieuse de ces deux premières parties que réside l'aspect "Mobile Friendly" de ce dispositif.

Les images font 700*525px (ratio de 0.75) avec un affichage de la zone de texte à 30% en largeur, (évidemment 70% pour l'image) d'où height : '52.5%' en script Web (voir formule)

NB :
on pourrait imaginer une zone de texte à 28% (72% pour les mêmes images) et donc une nouvelle valeur de height à 54%...
on pourrait imaginer une zone de texte à 40% (60% pour les mêmes images) et donc une nouvelle valeur de height à 45%...
etc... en respectant  le ratio image de 0.75.

En Mobile on souhaite ici 50% de la hauteur totale pour le texte, d'où height : '150%' en script Mobile (voir formule)

NB:
on pourrait imaginer un texte à 40% de la hauteur totale (60% restant en hauteur pour l'image avec les mêmes images)
[ donc une formule 100*525/(100-40)/700 = 1,25 ]
et donc une nouvelle valeur de height à 125%...
etc... en respectant  le ratio image de 0.75.

La partie suivante : choix des images, textes, liens... est commune aux deux types d'affichage...

Cette seconde partie, est à placer dans le code source à l'endroit ou vous souhaitez l'affichage du slider Camera...

<div class="fluid_container">
<div class="camera_wrap camera_white_skin" id="camera_wrap_1">

<div data-link="https://www.ffbillard.com/" data-src="photo/test_camera/billard-carambole.jpg" data-target="_blank">
<div class="camera_caption fadeFromRight">

<theme>carambole</theme><br />Billard français<br />
<a href="https://www.ffbillard.com/pages/discipline-carambole-52.html" target="_blank">» règles</a><br />
<a href="https://www.ffbillard.com/" target="_blank">» ff billard</a>
</div><!-- camera_caption -->
</div>

<div data-link="https://www.ffbillard.com/" data-src="photo/test_camera/billard-americain.jpg" data-target="_blank">
<div class="camera_caption fadeFromRight">

<theme>américain</theme><br />Billard américain<br />
<a href="https://www.ffbillard.com/pages/discipline-americain-50.html" target="_blank">» règles</a><br />
<a href="https://www.ffbillard.com/" target="_blank">» ff billard</a>
</div><!-- camera_caption -->
</div>

<div data-link="https://www.ffbillard.com/" data-src="photo/test_camera/billard-snooker.jpg" data-target="_blank">
<div class="camera_caption fadeFromRight">

<theme>snooker</theme><br />Billard snooker<br />
<a href="https://www.ffbillard.com/pages/discipline-snooker-53.html" target="_blank">» règles</a><br />
<a href="https://www.ffbillard.com/" target="_blank">» ff billard</a>
</div><!-- camera_caption -->
</div>

<div data-link="https://www.ffbillard.com/" data-src="photo/test_camera/billard-8pool.jpg" data-target="_blank">
<div class="camera_caption fadeFromRight">

<theme>blackball</theme><br />Billard blackball ou 8-pool<br />
<a href="https://www.ffbillard.com/pages/discipline-blackball-51.html" target="_blank">» règles</a><br />
<a href="https://www.ffbillard.com/" target="_blank">» ff billard</a>
</div><!-- camera_caption -->
</div>

</div><!-- camera_wrap -->
</div><!-- fluid_container -->

Les éléments surlignés en blanc sont à adapter à vos besoins...

Le chemin des images est à adapter à votre configuration...  Ici, il y a des liens sur les images, mais ils peuvent être supprimés.

Les balises <br /> servent à passer à la ligne.

Les balises <a href="..."> ... </a> servent, de manière classique, à placer des liens sur le texte placé entre ces deux balises.

Il sera peut-être nécessaire de rendre transparent le fond de votre boite libre... en édito... ou ailleurs... Tout dépend de la position de cette boite, en WEB et/ou en MOBILE... donc, pour cela et pour tout le reste...

N'hésitez pas à poster sur le forum de ce site pour plus d'informations ou d'aides.


Date de création : 01/03/2020 @ 07:44
Catégorie : Astuces - Camera
Page lue 65203 fois


Réactions à cet article


Personne n'a encore laissé de commentaire.
Soyez donc le premier !