Может ли кнопка «Нравится» (с комментариями) существовать внутри карусели? - PullRequest
2 голосов
/ 15 сентября 2011

У меня есть скользящая карусель предметов, каждый из которых имеет свою кнопку «Мне нравится». Я хочу, чтобы подобные кнопки имели комментарии; то есть, когда пользователь нажимает кнопку «Нравится», ему должно быть предложено оставить комментарий (http://developers.facebook.com/blog/post/397/). Я начинаю сомневаться в том, что эти цели совместимы, и хотел бы услышать, достиг ли кто-нибудь уже этого.

Комментарии к кнопкам «Лайк» шире, чем элементы в карусели, и правильно перетекают в другие элементы карусели. Однако некоторые из этих элементов находятся вне поля отсечения, поскольку элементы карусели обязательно находятся внутри элемента div с переполнением: скрыто (в противном случае мы бы не достигли эффекта прокрутки элементов при их поиске). Из-за этого, если я нажму «Нравится» на крайнем правом элементе, видимом в данный момент, появившаяся подсказка для комментариев будет частично находиться вне поля отсечения и, следовательно, частично видима.

Мне кажется, единственная возможная надежда на то, что приглашение для комментариев переполнит контейнер карусели, - это разместить приглашение вне контейнера в DOM. Таким образом, предполагая, что мы можем визуально расположить подсказку рядом с ее кнопкой «Лайк», где она принадлежит, она больше не ограничена контейнером. Это представляется возможным, поскольку на момент написания этой строки подсказка для комментария реализована в виде отдельного фрейма от самой кнопки; то есть этот XFBML:

<fb:like width="450"></fb:like>

дает (приблизительно) этот HTML-код:

<iframe src="facebook.com/like_button.php"></iframe>
<iframe src="facebook.com/comments_widget.php"></iframe>

Но если я попытаюсь переместить комментарии iframe в DOM, он мгновенно и навсегда станет пустым. Даже если бы я мог найти способ отсоединить определенные события и предотвратить это, это показывает, что требуется сложное решение, которое Facebook может сломать в любое время в будущем с изменениями в их реализации. Таким образом, я не могу переместить комментарии в дом, и, таким образом, приглашение всегда рискует быть обрезанным. Фейсбук говорит об этом по теме:

Если кнопка «Нравится» расположена рядом с краем элемента HTML со свойством переполнения, для которого установлено значение «скрытый», всплывающее окно может быть обрезано или полностью скрыто при нажатии кнопки. Это можно исправить, установив для свойства overflow значение, отличное от скрытого, например visible, scroll или auto.

Очевидно, что в случае карусели невозможно устранить переполнение: скрыто. Кто-нибудь нашел способ обойти это, или я должен сдаться и провести время в другом месте?

Спасибо

...