!!! Если кто-то может ответить на это сейчас, я буду ждать окончания периода награды и до 150 до его награждения. (Скауты чтят!) !!!Facebook API покрывает изображения смещения в атрибутах фонового положения
Я посмотрел вокруг, но не могу найти ответ на этот вопрос:
Я получаю обложку события изображения из фба API, а также хранение offset_x и offset_y значения. Потом поместить изображения в качестве фоновых CSS-изображений, как это:
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;
}
Высота/ширина основана на точном соотношении, используемой Facebook: 2,8: 1
HTML
<div class="event-image" style="background-image: url([url of img]); background-position: [offset_x]% [offset_y]%;" >
(у меня есть какая-то внутренняя логика, которая только добавляет фоновое позиционирование n, если в fb api есть один набор.)
Проблема в том, что это работает только в 90% случаев. Примерно 10% изображений слегка выровнены. как правило, лишь на несколько процентных пунктов :-(
Вот пример.
.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 -->
Теперь вот actual event
Вы можете видеть, что на самом деле смещение будет идеальный на 46% - так почему fb дает 50%?
Больше всего информации я могу найти на pixel calculations, но учитывая, что я использую проценты, это было бесполезно.
EDIT
Новый вопрос реализации решения elfan в:
Here is an event на ФБ, где изображение имеет offset_x в реальной фб странице -7px - но по АНИ, то 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"
}
Таким образом, используя расчет 500px (width of my image) * offset_x % = 250px
Что я делаю неправильно :-)
Я также заметил, что есть некоторые события, которые имеют сумасшедшие смещения, например 1800. Согласно документам fb, оно должно быть от 0 до 100.
Спасибо! Это определенно правильный ответ :-) - Я дам награду, а затем увеличу ее до 150 и присуждаю ее вам как можно скорее. – asimovwasright
Спасибо за награду :) В качестве бонуса я обновил свой ответ с дополнительным объяснением о 46%. – elfan
Я столкнулся с некоторыми проблемами с реализацией этого решения, не могли бы вы объяснить, в чем я ошибаюсь - я отредактирую свой вопрос с новыми проблемами. – asimovwasright