Artykuły:

  • data publikacji: 03.06.2008

    Pojawiająca się podpowiedź

    kategoria: Skrypty client-side, XHTML/CSS autor: palmiak

    Pojawiająca się podpowiedź

    Zdarza się czasem, że chcieli byśmy pomóc userowi, doradzając co powinien zrobić. Możemy do tego użyć wielu subtelnych metod lub centralnie na środku obrazka wyświetlić mu napis "POWIĘKSZ", "PRZECZYTAJ TO" etc. W tym tutorialu pokażę właśnie tą mało subtelną wersję.

    Obrazek

    Nim weźmiemy się do pracy najpierw musimy przygotować sobie obrazek z odpowiednim napisem. Ja użyłem gifa z napisem "POWIĘKSZ". Dlatego gifa, że nie potrzebowałem półprzezroczystości oraz nie trzeba się męczyć z ie6. Oczywiście nic nie stoi na przeszkodzie, żeby zamiast obrazka użyć tekstu, jpga, pnga czy czego tam sobie życzymy.

    My użyjemy:

    powiększ

    xhtml

    Sam link z obrazkiem wyglądać będzie następująco:

    <a href="nazwa_obrazka.jpg" class="zoom"><img src="nazwa_miniaturki.jpg" alt="opis miniaturki" /></a>
     

    Nic więcej nie potrzebujemy, bo resztą zajmie się jQuery.

    css

    Nasz styl też nie będzie zbyt imponujący:

    a.zoom {
            position:relative;
            display:block;
            width:0;
    }

    .zoombutton {
            background:url(zoom.gif) no-repeat;
            width:150px;
            height:50px;
            position:absolute;
            }

    a.zoom musi mieć position:relative żeby div z position:absolute, znajdujący się w środku wiedział wobec czego ma się odnosić.

    Width:0 musi być, żeby link nie zajmował całej szerokości ekranu. Mimo, że 0 jest wartością mniejszą niż szerokość obrazka (dość oczywiste, czyż nie?) to a automatycznie się dopasuje. Szczerze mówiąc jest to dla mnie drobną zagadką dlaczego tak jest, ale ważne, ze działa.

    jQuery

    jQuery będzie miało do zrobienia kilka rzeczy

    • dodać diva w którym będzie wyświetlany tekst/obrazek
    • umieszczać tego diva na samym środku obrazka
    • pokazywać i ukrywać diva w zależności od tego czy najechaliśmy na linka

    W całości wygląda to tak:

    $(document).ready(function(){
           
        $("a.zoom").prepend("<div class=\"zoombutton\"></div>");
           
            $("a.zoom").children(".zoombutton").hide();
           
            $("a.zoom").hover(
          function () {    
                    $(this).children(".zoombutton").fadeIn("slow");
          },
          function () {
                    $(this).children(".zoombutton").fadeOut("slow");
          }
        );
      });

    function center() {
            $(".zoom img").each(function(){
                            var wys;
                            var szer;
                   
                            wys = $(this).height();
                            wys = (wys / 2) - 25;
                   
                            szer = $(this).width();
                            szer = (szer / 2) - 75;
                   
                            $(this).parent().children(".zoombutton").css({ top:wys, left:szer });
           
                    });
    }

    $("a.zoom").prepend("<div class=\"zoombutton\"></div>"); odpowiada za wstawienie diva z obrazkiem "POKAŻ". Zostaje on wstawiony w każdy <a href="" class="zoom">.

    Następnie za pomocą $("a.zoom").children(".zoombutton").hide(); ukrywamy napis.

    Dzięki $("a.zoom").hover( ustawiamy co ma się dziać po najeździe na link. W naszym przypadku ma się pokazać nasz napis.

    Pozostaje nam jeszcze funkcja o nazwie center. Dzięki niej napis "POKAŻ" zostaje dokładnie wycentrowany. Najpierw patrzymy jakie wymiary ma obrazek, a następnie dzielimy przez 2 oraz odejmujemy połowę wysokości lub szerokości diva zoombutton.

    Łączymy to do kupy

    Całość powinna się składać z:

    • index.html - czy innego pliku w którym planujesz umieścić ten skrypt
    • style.css - czyli pliku ze stylem
    • jQuery.js - czyli pliku pobranego z ze strony jQuery.com
    • zoom.js - pliku w którym znajduje się skrypt odpowiadający za nasz bajerek

    Cały komplet możecie pobrać klikając tutaj. Tam też możecie spojrzeć w kod źródłowy.

    Podsumowanie

    I tym oto sposobem uzyskaliście dość przyjemny bajerek, który może pomóc niezorientowanemu userowi.

    Aby zobaczyć jak to działa wejdźcie na pliki.vivee.info/zoom/

    Udostępnij ten artykuł:
    • Print
    • Digg
    • del.icio.us
    • Facebook
    • Mixx
    • Google Bookmarks
    • Gwar
    • RSS
    • Technorati
    • Twitter
    • Wykop

  • This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

    14 Responses to “Pojawiająca się podpowiedź”

    1. Burger pisze:

      No wreszcie ruszyliście :D
      A tutek świetny, mozliwe że sie przyda :)

    2. agressiva pisze:

      No pewnie, że ruszyliśmy :)

      A Maciek zawsze jakiś bajerek wymyśli :)

    3. ernie pisze:

      Dobry tutorial i użyteczny

      Pozdro

    4. palmiak pisze:

      Burger, a zerknąłeś jak to pod ie6 wygląda?

      Poza tym bardzo fajnie ten cień na brzegach wyszedł.

    5. Gnacio pisze:

      Tut fajny :)
      Ale ja chce zrobic aby 3 obrazki w jednej linijce. A one sie robia jeden pod drugim, co wyglada brzydko :P Idzie zrobic aby w jednej lini byly 3 obrazki?

    6. palmiak pisze:

      Wystarczy a dodać float:left i prawdopodobnie zadziała.

    7. Gnacio pisze:

      No nie pomyslalem o tym :P Myslalem, ze bedzie trzeba zmianiac cos w jquery.js, no, ale naszczescie nie :D
      Dzieki ;)

    8. JaRo pisze:

      Genialny tutorial. Dzięki :)

    9. Jurek pisze:

      Witam, panowie specjaliści, a dało by się jakość tego diva z obrazkiem upchnąć jako niewidocznego gdzieś w treść body? Chodzi o dynamiczną zmianę adresu docelowego w zależności od zawartości, obrazka. Skrypt miał by pracować w blogu a zawartością headera nie mogę manipulowac…

      Pozdrawiam

    10. JaRo pisze:

      A ja mam takiego byka małego tutaj. A więc…

      ‘Pomachajcie’ myszką trochę – wjeżdżając i zjeżdżając na obrazki w szybkim tempie i zobaczcie na to opóźnienie :) Jak temu zaradzić?

    11. palmiak pisze:

      Najprościej to zmień slow na fast i już. Wtedy nie będzie opóxnienia.

    12. JaRo pisze:

      Nie chodzi mi dokładnie o samo opóźnienie, ale o efekt jaki się tworzy jak machasz myszką – mycha dawno jest poza zdjęciem, a efekt powtarza się jeszcze tylko razy, ile na nie wjechałeś :) Fakt taki skrypt, ale przydałby się jakiś fix na to :-P

    13. tomeq pisze:

      dało by rade zrobić tak samo ale pomniejsz ??

    Leave a Reply

Komentarze

Kategorie

Top 10

  • CMSy Artykuły dotyczące różnego rodzaju systemów zarządzania treścią CMS.
  • Flash Podstawowe informacje pomocne przy tworzeniu animacji w Adobe Flash.
  • Fotografia Samouczki dotyczące nie tylko robienia zdjęć ale też ich cyfrowej obróbki.
  • Grafika Ogólnie pojęta grafika komputerowa, od inspiracji, po tworzenie layoutów oraz mniejszych form graficznych.
  • Inne tutoriale wordpressowe Wszystkie inne zagadnienia dotyczące WordPressa.
  • Inspiracje Inspirujące materiały graficzne z dziedziny projektowania stron www, projektów DTP, digital painting, itp.
  • Obróbka zdjęć Techniki retuszu fotografii cyfrowych.
  • Rysunek Tworzenie rysowanych ilustracji w Adobe Photoshop.
  • Skóry do Wordpressa Darmowe oraz płatne – najlepsze skóry do WordPressa.
  • Skrypty client-side
  • Skrypty server-side
  • Tutoriale
  • Webdesign Tutoriale z zakresu projektowania stron www i grafiki użytkowej na rzecz internetu.
  • Wieczór z Open Source
  • Wordpress Ulubieniec naszej publiczności CMS WordPress: nowości, tricki, wtyczki, skóry i wszystko to co może przydać się przy korzystaniu z tego systemu.
  • Wtyczki do Wordpressa Recenzje oraz instrukcje najbardziej popularnych i najbardziej niezbędnych pluginów do WordPressa.
  • XHTML/CSS Ciekawostki z dziedziny kodowania stron www: XHTML, CSS, jQuery.

Najnowsze newsy

Wieczór z Open Source 2010

Jak co roku WSINF organizuje konferencję Wieczór z Open Source.
Chciałbym zaprosić was na tegoroczna konferencję Wieczór z Open Source 2010! Czytaj dalej

Grafart.org i WACOM zapraszają na konkursy!

Witam!

Myślę, że czas najwyższy nadmienić, że za niedługi czas zostanie zorganizowany pierwszy z trzech konkursów, w których główną nagrodą będą tablety firmy WACOM!
Za miejsca drugie oraz trzecie nagrodami będą kubki i koszulki firmy WACOM oraz magazyny graficzne PSD PHOTOSHOP oraz COMPUTERARTS.
Czytaj dalej

Zapraszamy na forum graficzne Graffika.pl

Każda osoba interesująca się grafiką komputerową ma czasami ochotę porozmawiać o swoich pracach, posłuchać rad, krytyki i pochwał innych osób. Idealnym miejscem na realizowanie takich potrzeb jest forum graficzne Graffika.pl.
Czytaj dalej