2011-12-16 13 views
8

Mam przycisk podobny do Facebooka, który działa poprawnie, we wszystkich przeglądarkach na komputery stacjonarne i komórkowe. Ale problemy dotyczą urządzeń o niskiej rozdzielczości i rozdzielczości 240x320. przycisk "Lubię to" powoduje, że urządzenie przybliża stronę, co powoduje przewijanie w poziomie.Facebook Podobnie jak przycisk powodujący poziome przewijanie na urządzeniu mobilnym

Przyciski są renderowane poprawnie na urządzeniach o szerokości> = 320px takich jak iPhone itp., Ale starsze urządzenia z systemem Android o szerokości mniejszej niż to są problemy.

Sposób, w jaki to widzę. Strona ładuje się dobrze, a następnie wywołuje serwer na Facebooku, a następnie wraca z pewnym parametrem, który wszystko to zepsuje. Generuje on . Próbuję ustawić parametry CSS width i overflow, ale nic nie działa. Inicjuję przycisk Lubię to tak:

<div id="fb-root"> 
<!--Facebook begins-->  
     <div class="fb-like" data-href="<%=RedirectURL%>" data-send="false" data-layout="button_count" width="80" data-show-faces="false"></div> 
     <!-- ends --> 
</div> 

<script> 
     window.fbAsyncInit = function() { 
      FB.init({ appId: '328982000461228', status: true, cookie: true, 
       xfbml: true 
      }); 
      FB.Event.subscribe('edge.create', function (response) { 
       ntptEventTag('ev=Social&Action=Method Shared'); 
      }); 
     }; 
     </script> 
    <script type="text/javascript"> 

Odpowiedz

4

Żadne z powyższych rozwiązań nie poradzić. Nareszcie dostałem odpowiedź.Chociaż nie jest to najlepsze rozwiązanie, ale wykonuje swoją pracę.

Zgłosiłem to do nadrzędnego kontenera na fb jak przycisk:

.socialIcons { display: inline-block; width: 200%; /* for low res androids */ overflow: hidden; margin: 5px 0 5px 10px; } 
3

Facebook Like Button automatycznie generuje element iframe na Twojej stronie. Spróbuj ustawić szerokość iframe z css lub dynamicznie z javascript. Element iframe ma klasę = "fb_ltr".

+0

nie można zrobić . Próbuję to zrobić poprzez javascript. ale przycisk podobny powoduje wywołanie serwera na facebooku. po której jest cała ta sama historia. – amit

4

Umieść swój przycisk podobny w dziale div i zastosuj ukryty styl ukryty w tym elemencie div.
UDATE: Spróbuj również ustawić przepełnienie ukryte na znaczniku HTML i body (robi dużą różnicę w zakładkach stron fb).

Kod snippet też może się przydać to:

<meta name="viewport" content="width=320,user-scalable=false" /> 
<style type="text/css"> 
    body { 
     -webkit-touch-callout: none; 
     -webkit-user-select: none; 
     -webkit-user-modify: none; 
     -webkit-highlight: none; 
     -webkit-user-select: none; 
    } 
</style> 
+0

Okienko wyświetlania, jeśli ustawione na 320 pikseli, stanowiłoby problem dla urządzeń o niskiej rozdzielczości. Niepolecane. i przepełnienie: ukryte i już zaimplementowane. nie działa. – amit

+0

Zaktualizowałem odpowiedź:] – borisdiakur

+0

Zobacz również tutaj: http://stackoverflow.com/a/4827449/601466 – borisdiakur

2

Sprawdziłeś inne zwykłe witryny w tej samej przeglądarce o niskiej rozdzielczości? sprawdź na twitter.com, czy pasek przewijania nadal jest problemem w przeglądarce (wpadłem na coś takiego), definicja pełnego ekranu przeglądarki jest zawsze większa niż dostępna szerokość, i ostatecznie musiałem zdefiniować "div" wewnątrz ciało o określonej szerokości (320 pikseli) i zrzuć zawartośd w nim, a także przepełnienie ciała: ukryte:

3

Wykryj urządzenie o niskiej rozdzielczości i użyj innego, podobnego do niego układu przycisków, który lepiej do niego pasuje.

Że jeden jest:

data-layout="box_count" , 

zajęłoby nieco więcej miejsca w pionie choć, co jest w porządku.

  • button_count

enter image description here

  • box_count

enter image description here

-2

To było najłatwiejsze dla mnie, działa na iOS Safari jeśli używasz zarówno:

html, body {overflow-x: hidden;} 
Powiązane problemy