piątek, 8 listopada 2013

Facebook slider bez JS

Facebook slider bez JS


Jak dodać do strony bardzo prosty animowany slider LikeBox-a z Facebook-a? Ostatnio na tym blogu wspominałem o pluginie MUSLI oraz o możliwości podpięcia go pod blog na Bloggerze. W pierwszym poście wyjaśniłem jak podpiąć bibliotekę jQuery, jak podpiąć plugin MUSLI, jak dodać dodatkowe style CSS do szablonu i kod zakładek, oraz jak wykorzystać w tym kodzie grafikę umieszczoną na bloggerze.

Natomiast dzisiaj zmienimy nieco podejście i zbudujemy bardzo podobny, również w podobny sposób, slider LikeBoxa, ale tym razem bez JavaScript, czyli bez js, bez jQuery i bez pluginu MUSLI.

Czy można osiągnąć efekt slidera bez javascript? Obecnie CSS transitions stają się coraz popularniejsze i coraz szerzej wspierane przez przeglądarki. Wykorzystując techniki CSS transitions zbudujemy efekt imitujący wyjeżdżanie zakładki z boku okna przeglądarki.

Zdecydowany plus takiego rozwiązania to oczywiście pominięcie skryptów js, czyli jQuery i MUSLI. Minus to kompatybilność z przeglądarkami, dlatego każdy musi sobie sam odpowiedzieć na pytanie czy to rozwiązanie nadaje się na jego stronę, czy blog.

Na moim blogu o WordPress dodałem wczoraj podobny wpis o sliderze LikeBoxa bez JS, więc tutaj po prostu troszkę to przerobimy, aby dostosować pod wymagania bloggera... :)

Oprócz tego napisałem jeszcze przykładowe demo z realizacjami z jQuery, z MUSLI i z jQuery easing plugin, dzięki którym osiągnąć można całkiem ciekawy efekt. Tylko pytanie czy opłaca się podpinać aż trzy skrypty, aby realizować to zadanie? Oceńcie sami. :)


Facebook LikeBox slider bez JS

Tutaj znajduje się demo slidera, o którym wspominałem wcześniej, jest to efekt końcowy produktu do którego dążymy w tym wpisie.

HTML slidera

Na początek prawidłowy kod HTML. Jak zwykle jest to lista nieuporządkowana (ul), we wnętrzu każdego elementu listy (li) umieszczamy -
  • obrazek (img), który będzie imitował zakładkę
  • blok (div) z zawartością zakładki. We wnętrzu tego bloku możemy umieścić właściwie cokolwiek (zdjęcie, formularz, napis, linki).
<ul class="musli">
 <li>
  <img src="c-icons/fb.png" />
  <div class="musli-facebook">KOD ZAKŁADKI</div>
 </li>
 <li>
  <img src="c-icons/gp.png" />
  <div class="musli-google">KOD ZAKŁADKI</div>
 </li>
</ul>

Powyższy kod tworzy dwie zakładki, ale można zrobić jedną albo więcej.

Domyślnie slider wyświetli się z prawej strony, ale możemy dodać do listy dodatkową klasę, która zmieni pozycję slidera:
  • musli-left - aby przenieść zakładki na lewą stronę
  • musli-top - aby wyświetlać zakładki na górze strony
  • musli-bottom - aby wyświetlać zakładki na dole strony

CSS

/* reset */
.musli *{
 padding:0;
 margin:0;
 list-style:none;
}
.musli{
 position:fixed;
 right:0px;
 top:150px; /* tutaj można ustawić odległość 
od góry strony dla zakładek znajdujących się po prawej stronie  */
 z-index:100;
 list-style:none;
}
.musli-bottom{
 left:300px; /* tutaj można ustawić odległość 
od lewej strony dla zakładek znajdujących się na dole  */
 bottom:0px;
 right:auto;
 top:auto;
}
.musli-top{
 left:300px; /* tutaj można ustawić odległość 
od lewej strony dla zakładek znajdujących się na górze  */
 top:0px;
 right:auto;
 bottom:auto;
}
.musli-left{
 left:0px;
 top:200px; /* tutaj można ustawić odległość 
od góry strony dla zakładek znajdujących się po lewej stronie  */
 right:auto;
 bottom:auto;
}
.musli > li{
 cursor:pointer;
 width:35px;
 height:35px;
 margin-bottom:1px;
 position:relative;
}
.musli-bottom > li, .musli-top > li{
 margin-right: 1px;
 margin-bottom: 0;
 float:left;
}

/* Zaokrąglone rogi dla obrazków zakładek - 
skasuj, jeżeli nie chcesz zaokrąglać rogów przez CSS */
.musli > li > img{
 -moz-border-radius: 5px 0 0 5px;
 -webkit-border-radius: 5px 0 0 5px;
 border-radius: 5px 0 0 5px;
}
.musli-bottom > li > img{
 -moz-border-radius: 5px 5px 0 0;
 -webkit-border-radius: 5px 5px 0 0;
 border-radius: 5px 5px 0 0;
}
.musli-top > li > img{
 -moz-border-radius: 0 0 5px 5px;
 -webkit-border-radius: 0 0 5px 5px;
 border-radius: 0 0 5px 5px;
}
.musli-left > li > img{
 -moz-border-radius: 0 5px 5px 0;
 -webkit-border-radius: 0 5px 5px 0;
 border-radius: 0 5px 5px 0;
}
/* Koniec Zaokrąglone rogi dla obrazków zakładek */

.musli > li > div{
 padding:5px;
 background: #fff;
 float:left;
 width:286px;
 height:296px;
 -moz-border-radius: 0 0 0 8px;
 -webkit-border-radius: 0 0 0 8px;
 border-radius: 0 0 0 8px;
 position:absolute;
 top:0;
 left:35px;
 z-index:100;
 border: solid #0170cf 3px;
}
.musli-bottom > li > div{
 top:35px;
 left:auto;
 -moz-border-radius: 0 8px 0 0;
 -webkit-border-radius: 0 8px 0 0;
 border-radius: 0 8px 0 0;
}
.musli-top > li > div{
 bottom:35px;
 left:auto;
 top:auto;
 -moz-border-radius: 0 0 8px 0;
 -webkit-border-radius: 0 0 8px 0;
 border-radius: 0 0 8px 0;
}
.musli-left > li > div{
 top:0px;
 left:auto;
 right:35px;
 -moz-border-radius: 0 0 8px 0;
 -webkit-border-radius: 0 0 8px 0;
 border-radius: 0 0 8px 0;
}
.musli-google{
 border: solid #cd3c2a 3px !important;
}
.musli-facebook{
 border: solid #0170cf 3px !important;
}
.musli-twitter{
 border: solid #07afee 3px !important;
}
.musli-nk{
 border: solid #8fc44c 3px !important;
}
/** transitions **/
/** wymiary diva - width:286px; height:296px; **/
.musli>li{
 right:0;
 -moz-transition:.5s linear;
 -webkit-transition:.5s linear;
 transition:.5s linear;
}
.musli>li:hover{
 right:302px; /* szerokosc diva w którym znajduje się LikeBox */
}
.musli-left>li{
 left:0px
}
.musli-left>li:hover{
 right:auto;
 left:302px; /* szerokosc diva w którym znajduje się LikeBox */
}
.musli-top>li{
 top:0;
}
.musli-top>li:hover{
 right:auto;
 top: 312px; /* wysokosc diva + (paddingi + grubosc ramki) * 2 */
}
.musli-bottom>li{
 bottom:0;
}
.musli-bottom>li:hover{
 right:auto;
 bottom: 312px; /* 286px + (10px + 3px) * 2 = 312px */
}

/** END transitions **/

I to wszystko. Szczegóły na temat wykorzystania grafik znajdujących się na bloggerze opisałem w ostatnim wpisie. Znajdziesz tam również szczegółowe informacje na temat jak edytować Twój wybrany motyw, oraz jak i gdzie umieścić kod.


 

sobota, 19 października 2013

Pierwszy, testowy wpis na Bloggerze

Pierwszy, testowy wpis na Bloggerze

Witam, to jest mój pierwszy wpis tutaj. Może nie pierwszy na Bloggerze, ale z pewnością na tym konkretnym blogu.

Dodajmy kilka obrazków...


Chciałbyś dodać do swojego Bloggera animowane zakładki z likeboxem Facebooka, badge Google Plus, albo ostatnie Twitty?

Musli na Bloggerze

Jakiś czas temu ktoś pytał mnie w komentarzach na moim blogu o wordpressie wpadmin.pl , czy można dodać takie animowane zakładki Facebooka również na Bloggerze. Ponieważ, Blogger pozwala na edytowanie kodu szablonu, to nie powinno być z tym problemu...

Co to musli

Musli, to bardzo prosty plugin jQuery, który animuje "wyjeżdżanie i chowanie się zakładek" z jednej z wybranych krawędzi okna przeglądarki (albo wielu). Na takiej zakładce, co jest bardzo popularnym rozwiązaniem, można umieścić np. kod ramki (iframe) z LikeBoxem Facebooka, albo Badge Google plus, albo widget z ostatnimi wpisami na twitterze, albo cokolwiek innego - linki, poprosić o opinie, ankietę, formularz subskrypcji, kontaktu, itd.

Jak dodać wysuwany LikeBox Facebooka do Bloggera


Wszystko co będzie potrzebne do uruchomienia "slidera LikeBoxa Facebooka", czyli:
  • kod HTML
  • CSS
  • plugin MUSLI
  • obrazki (alternatywnie stąd, własne, lub inne z internetu)

oraz, wiele innych dodatkowych i bardziej szczegółowych informacji o tym jak skonfigurować Musli, wg. własnych potrzeb można znaleźć w tym artykule http://wpadmin.pl/facebook-likebox-slider-czyli-musli-poprawiony-ulepszony/


Najprostsza i najszybsza droga do uruchomienia pluginu:

 

1.  Najprościej będzie najpierw zająć się i przygotować obrazki z grafiką, które będą przedstawiać tą zawsze widzialną część zakładki. Obrazki musimy umieścić gdzieś, gdzie będziemy mieli do nich dostęp - np. jakiś hosting plików, jeśli posiadasz własny serwer to by się idealnie do tego nadał, albo tak jak ja zrobiłem i wykorzystałem do tego celu ten artykuł, w którym na początku umieściłem obrazki, które teraz wykorzystuję w moim zakładkach.


2. Przejdź do głównego okna Bloggera i wybierz blog na którym chcesz wstawić zakładki.

3. Z pionowego menu po lewej stronie wybierz opcję Szablon, a następnie przy aktywnym motywie guzik Edytuj kod HTML - tak jak zaznaczyłem na następnym obrazku:

4. Odszukaj w kodzie początek sekcji <head> i w niej, może być bezpośrednio pod tą linijką wstaw najpierw snippet dołączający bibliotekę jQuery:

<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js'></script>

5. Teraz z pliku z pluginem musli skopiuj wszystko i wklej pod spodem powyższego kodu:


<script type="text/css">
/* MUSLI jQuery plugin */
/* Version: 0.2 */
/* Author: ziemekpr0@gmail.com */
/* Plugin homepage: http://musli.newdivide.pl */

(function($) {
 $.fn.musli = function(options) {

 var settings = $.extend({
  animationAction : 'hover',
  animationSpeed : 1000,
  musliPosition: 'right'
 }, options );

 if(settings.musliPosition == 'top' || 
settings.musliPosition == 'bottom')
 {
  var animationBegin = {};
   animationBegin[settings.musliPosition] = 
this.find('li > div').outerHeight();
  var animationEnd = {};
   animationEnd[settings.musliPosition] = "0";
 }
 else
 {
  var animationBegin = {};
   animationBegin[settings.musliPosition] = 
this.find('li > div').outerWidth();
  var animationEnd = {};
   animationEnd[settings.musliPosition] = "0";
 }

 if(settings.animationAction == 'click'){

  this.find('li > img').click(function(){
   if($(this).parent('li').hasClass('musli-opened')) {
    $(this).parent('li').animate(animationEnd, 
parseInt(settings.animationSpeed)).removeClass('musli-opened');
   }
   else {
    $(this).parent('li').animate(animationBegin, 
parseInt(settings.animationSpeed)).addClass('musli-opened');
   }
  });
 }
 else
 {
  this.find('li').hover(
   function(){ $(this).stop().animate(animationBegin, 
parseInt(settings.animationSpeed)); },
   function(){ $(this).stop().animate(animationEnd, 
parseInt(settings.animationSpeed)); }
  );   
 }
}
}(jQuery));

$('#musli').musli();

</script>

W ostatniej linijce skryptu uruchamiamy plugin, w tym miejscu możemy podać dodatkowe opcje takie jak czy chcemy aby animację uruchamiało kliknięcie, czy najechanie na zakładkę, czas animacji, oraz pozycję zakładek na ekranie. Szczegóły jak to zrobić można sprawdzić na moim blogu, w linku który podałem wcześniej.

6. Ostatni krok, to zdefiniowanie listy zakładek, podanie ścieżek do obrazków, wygenerowanie odpowiedniego kodu LikeBoxa itp.

Mój, gotowy kod, ze ścieżkami do obrazków umieszczonych w tym artykule wygląda dokładnie tak:

<ul class='musli' id='musli'>
  <li>
    <img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj-fUYmu9yDDg3P-2esL_YXFoTjsnqg6IN6dFAOgA_60QF-USFqz2_ML0-D1JanmcPjXWJtZEI7fW5K1ALRmf6cHIjhZo6Vddy5IFhjb7FPtA-kzhAn3R03hmXpHVDNGhOmoih7E3v63bb/s1600/facebook.png'/>
    <div class='musli-facebook'><iframe allowTransparency='true' frameborder='0' scrolling='no' src='http://www.facebook.com/plugins/likebox.php?href=https%3A%2F%2Fwww.facebook.com%2FNewDividepl&amp;width=287&amp;height=290&amp;show_faces=true&amp;colorscheme=light&amp;stream=false&amp;border_color&amp;header=true&amp;appId=283077631817635' style='border:none; overflow:hidden; width:287px; height:290px;'/></div>
  </li>
  <li>
    <img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHd6gybJED1zdzrwlwXQkHr-lUxZlW3mlSCK6IY6-2Riy5R-h3YJZrIsDH9cQP0nLF8QWHeopXGlTPsFgcEx4FjugrMoDhCGff1OHXbqw__s0mRO6A9JToOALzf3FzvqBg0oGw68yXNqYB/s1600/googleplus.png'/>
    <div class='musli-google'><div class='g-page' data-href='//plus.google.com/105865537512501982443' data-rel='publisher' data-showcoverphoto='false' data-width='287'/><script type='text/javascript'>window.___gcfg={lang:&quot;pl&quot;};(function(){var po=document.createElement(&quot;script&quot;);po.type=&quot;text/javascript&quot;;po.async=true;po.src=&quot;https://apis.google.com/js/plusone.js&quot;;var s=document.getElementsByTagName(&quot;script&quot;)[0];s.parentNode.insertBefore(po,s);})();</script></div>
 </li>
</ul>




W miejscach, które zaznaczyłem czerwoną czcionką należy podać swój identyfikator fanpage-a, czy strony w google plus. Na poniższych screenach widzisz, że wystarczy przejść pod adres fanpage i z linku w oknie adresu przeglądarki skopiować odpowiedni fragment: odpowiednio NewDividepl dla fanpage na Facebooku i 105865537512501982443 dla strony Google.






Kod należy skopiować i wkleić, najprościej na początku sekcji <body> szablonu Bloggera.



Zapisujemy zmiany i przechodzimy do naszego bloga, aby sprawdzić czy wszystko działa...