![]() |
Bienvenue invité ( Connexion | Inscription )
![]() |
![]()
Message
#1
|
|
![]() Macbidouilleur d'argent ! ![]() ![]() ![]() Groupe : Membres Messages : 792 Inscrit : 14 Nov 2003 Lieu : Genève Membre no 11 656 ![]() |
Bonjour,
Je dois réaliser une animation HTML5 "retina" et je fais mes essais avec animate CC d'Adobe. Pour une animation de 300x250 pixels "affichée", je réalise donc l'animation à 600x500 pixels sous animale CC. Après publication, j'essaie de contraindre en CSS mon caneva au petit format, mais rien ne fonctionne. Quelque chose comme : Code <canvas id="canvas" width="600" height="500" style="width:300px;height:250px;"></canevas> n'a aucun effet sur le code généré par Animate CC. (référence : forum Adobe) Comment puis-je m'y prendre ? Je ne trouve aucune doc à ce sujet (ou alors, c'est l'exemple que j'ai cité ci dessus) merci pour toute aide de votre part. |
|
|
![]() |
![]()
Message
#2
|
|
![]() Macbidouilleur d'argent ! ![]() ![]() ![]() Groupe : Membres Messages : 792 Inscrit : 14 Nov 2003 Lieu : Genève Membre no 11 656 ![]() |
Merci pour ta réponse zzibes !
Je ne comprends pas bien pourquoi nous serions obligé d'utiliser du javascript pour afficher un canvas à 50%. Impossible de le contraindre par du CSS ? Et j'imagine qu'il devrait y avoir un moyen, avec les media queries peut-être, d'afficher une petite animation pour les écran normaux et une animation 2x plus grande pour les écrans rétina, un peu sur cette base pour les images : Code <!doctype html> <html lang="fr"> <head> <style> div#monimage{width: 300px; height: 250px; } @media only screen and (-webkit-max-device-pixel-ratio: 1.5), only screen and (-o-max-device-pixel-ratio: 3/2), only screen and (max--moz-device-pixel-ratio: 1.5), only screen and (max-device-pixel-ratio: 1.5) { div#monimage{ background: url(monimage.jpg) no-repeat; } } @media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (-o-min-device-pixel-ratio: 3/2), only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) { div#monimage{ background-image: url([email protected]); background-size: 300px 250px; } } </style> </head> <body> <div id="monimage"></div> </body> </html> ... et l'image [email protected] est 2 fois plus grande que monimage.jpg. Ou faudra-t-il attendre html6 ? ps. si jamais, pour la clarté du forum, essaie d'utiliser les balises <code>blablabla</code> (en fait entre crochet [] pour que ça marche), pour afficher du code. (ou il y a un bouton en dessous des polices) ![]() Ce message a été modifié par toluol - 30 Aug 2018, 00:29. |
|
|
![]()
Message
#3
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 4 933 Inscrit : 1 Jul 2010 Membre no 156 073 ![]() |
Je ne comprends pas bien pourquoi nous serions obligé d'utiliser du javascript pour afficher un canvas à 50%. Impossible de le contraindre par du CSS ? Bonjour, l'élément canvas permet d'y « peindre » des pixels. Pour afficher un élément de 100px de large (valeur CSS), un écran basse définition utilise 100px, un écran haute définition 200px (ou 300px, etc selon la densité de pixels de l'écran). Si tu dessines sur un canvas de 200px pour finalement le redimensionner à 100px en CSS, tu demandes deux fois plus de calcul que nécessaire à l'appareil doté d'un écran basse définition. C'est pour cela qu'il est préférable de détecter la densité de pixels de l'appareil avant de dessiner. Un exemple de plus : Code // sélection et définition du contexte du canvas
var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d'); // dimensions CSS var largeur = 200; var hauteur = 100; canvas.style.width = largeur + 'px'; canvas.style.height = hauteur + 'px'; // densité de pixels, redimensionnement du canvas var ratio = window.devicePixelRatio; canvas.width = largeur * ratio; canvas.height = hauteur * ratio; // mise à l'échelle pour correspondre aux dimensions CSS ctx.scale(ratio, ratio); -------------------- L'homme n'est que poussière... c'est dire l'importance du plumeau ! Alexandre Vialatte
|
|
|
![]() ![]() |
Nous sommes le : 18th July 2025 - 06:46 |