On Github Freddy03h / heart-presentation
Utilisable sur mobile depuis iOS 5 et Android 4
overflow:auto insuffisant ?
#main { -webkit-overflow-scrolling: touch }
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
Permet de limiter le reflow à un élément au lieu de toute la page
Inapplicable sur un élément fluide
Avec du CSS on peu délimiter des limites aux layout/frame. En delimitant un scope à nos layouts, une modification dans ce layout ne provoque qu'un 'reflow' partiel - moins couteux en perf Mais nécéssite des conditions dratisques (hauteur et largeur fixe, position absolute, overflow not auto) -> inutilisable sur un élément fluide, à utiliser sur un composant à taille fixe mais pas pour un layout responsive Besoin malgré tout de le minimiserAnimer avec transforms3d et opacity
Eviter au maximum d'animer les propriétés provoquant un reflow comme height, width, top, left, …
Utilisation de Modernizr pour cibler les navigateurs modernes
Ma définition d'un navigateur moderne d'un point de vue CSS :
Supprime les 300 ms de délais au click
window.addEventListener('load', function() { new FastClick(document.body); }, false);
Contient la logique position: absolute et imbrication overflow-scrolling:touch
<div class="layer"></div>
Le wrap permet de forcer une hauteur à 100% même si le contenu ne remplit pas le layer.
<div class="layer"> <div class="layer-scrollable"> <div class="wrap"> … </div> </div> </div>
Permet de gérer les états visible/invisible d'un layer avec une class. Pas besoin de jouer avec la propriété display en JavaScript.
<div class="layer"> … </div> <div class="layer-toggle"> … </div>
<div class="layer"> … </div> <div class="layer-toggle open"> … </div>