!!! Si quelqu'un peut répondre maintenant, j'attendrai la fin de la période de primes, et jusqu'à 150 avant de l'accorder. (L'honneur des Scouts!) !!!Décalages d'images de couverture de l'API Facebook dans les attributs de position de fond
J'ai regardé autour mais ne peut pas trouver une réponse à cette question:
Je reçois des images de couverture d'événements de fb api, et également de stocker les valeurs offset_x et offset_y. Ensuite, je place les images sous forme d'images d'arrière-plan-css comme ceci:
CSS
.event-image {
margin-bottom: 30px;
width: auto;
width: 500px;
height: 178px;
max-width: 100%;
min-width: 300px;
background-size: cover;
background-position: center center;
background-repeat: no-repeat;
outline: none;
}
La hauteur/largeur est basée sur le rapport exact utilisé par Facebook: 2,8: 1
HTML
<div class="event-image" style="background-image: url([url of img]); background-position: [offset_x]% [offset_y]%;" >
(j'ai une logique interne qui ne fait qu'ajouter l'arrière-plan positio n propriété s'il y a un ensemble dans l'API fb.)
Le problème est que cela ne fonctionne que 90% du temps. Environ 10% des images sont légèrement alignées. habituellement seulement par quelques points de pourcentage :-(
Voici un exemple.
.event-image {
margin-bottom: 30px;
width: auto;
width: 500px;
height: 178px;
max-width: 100%;
min-width: 300px;
background-size: cover;
background-position: center center;
background-repeat: no-repeat;
outline: none;
}
<div class="event-image" style="background-image: url(https://scontent.xx.fbcdn.net/t31.0-0/p180x540/14566476_1295215523823549_1334771895810946224_o.jpg); background-position: 0% 50%; "> \t </div>
<!-- Offsets are taken directly from API -->
Maintenant, voici le actual event
Vous pouvez voir que en fait le décalage serait parfait à 46% - alors pourquoi fb donne-t-il 50%?
Le plus d'infos que je peux trouver sur pixel calculations, mais vu que j'utilise des pourcentages, ce n'était pas utile.
EDIT
Nouvelle émission mise en œuvre de la solution de Elfan:
Here is an event sur fb où l'image a offset_x dans la page fb réelle de -7px - mais selon l'api, l'offset_x = 50%
{
"cover": {
"offset_x": 50,
"offset_y": 0,
"source": "https://scontent.xx.fbcdn.net/t31.0-8/s720x720/14681104_1307094859330152_7540791723420117074_o.jpg",
"id": "1307094859330152"
},
"id": "544220282434185"
}
Ainsi, en utilisant le calcul 500px (width of my image) * offset_x % = 250px
Qu'est-ce que je fais de mal :-)
J'ai aussi remarqué qu'il y a des événements qui ont des décalages de folie, comme 1800 par exemple. Selon fb docs, il devrait être entre 0-100.
Merci! C'est certainement la bonne réponse :-) - Je vais laisser la prime expirer, puis la monter à 150 et l'attribuer à vous dès que possible. – asimovwasright
Merci pour la prime :) En bonus, j'ai mis à jour ma réponse avec une explication supplémentaire sur les 46%. – elfan
Je rencontre des problèmes pour implémenter cette solution, pourriez-vous m'expliquer où je vais mal - je vais éditer ma question avec les nouveaux problèmes. – asimovwasright