Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Puchar WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Jak zniknąć w ostatnim panelu bocznym widżetu w WordPress przy użyciu jQuery

Niedawno jeden z naszych użytkowników zapytał nas o to, jak dodać efekt zanikania dla ostatniego widżetu w panelu bocznym. Ten popularny efekt jQuery jest używany na wielu znanych witrynach internetowych i blogach. Gdy użytkownik przewija stronę w dół, ostatni widżet w panelu bocznym zanika i staje się widoczny. Animacja sprawia, że widżet przyciąga wzrok i daje się powiadomić, co znacznie zwiększa współczynnik klikalności. W tym artykule pokażemy, jak wygasić ostatni panel boczny w WordPressie za pomocą jQuery.

Poniżej znajduje się demonstracja tego, jak to wygląda:

Fade in last sidebar widget in WordPress

W tym poradniku będziesz modyfikował pliki twojego motywu. Zaleca się wykonanie kopii zapasowej twojego motywu przed przejściem dalej.

Krok 1: Dodanie JavaScript dla efektu Fadein

Najpierw musisz dodać kod jQuery do twojego motywu WordPress jako osobny plik JavaScript. Zacznij od otwarcia pustego pliku w edytorze tekstu, takim jak Notatnik. Następnie zapisz ten pusty plik jako wpb_fadein_widget.js na twoim pulpicie i wklej do niego następujący kod.

.
jQuery(document).ready(function($) {
/**
* Konfiguracja
* Kontener dla twojego panelu bocznego, np. aside, #sidebar itp.
*/

var sidebarElement = $('div#secondary');


// Sprawdź, czy panel boczny istnieje
if ($(sidebarElement).length > 0) {

// Pobierz ostatni widżet w panelu bocznym i jego pozycję na ekranie

var widgetDisplayed = false;
var lastWidget = $('.widget:last-child', $(sidebarElement));
var lastWidgetOffset = $(lastWidget).offset().top -100;
	
// Ukryj ostatni widżet
$(lastWidget).hide();
	
// Sprawdź, czy przewijanie użytkownika osiągnęło górę ostatniego widżetu i wyświetl go
$(document).scroll(function() {

// Jeśli widżet został wyświetlony, nie musimy kontynuować sprawdzania.

if (!widgetDisplayed) {
if($(this).scrollTop() > lastWidgetOffset) {
$(lastWidget).fadeIn('slow').addClass('wpbstickywidget');
widgetDisplayed = true;  
}
}
});
}
});

.

Najbardziej importowaną linią w tym kodzie jest var sidebarElement = $('div#secondary');.

Jest to identyfikator elementu div zawierającego twój panel boczny. Ponieważ każdy motyw może używać różnych divów kontenera paska bocznego, musisz znaleźć identyfikator kontenera, którego twój motyw używa dla paska bocznego.

Można to sprawdzić za pomocą narzędzia inspect element w przeglądarce Google Chrome. Wystarczy kliknąć prawym przyciskiem myszy na twój panel boczny w Google Chrome, a następnie wybrać Inspect Element.

Finding sidebar container id in source code

W kodzie źródłowym będziesz mógł zobaczyć twój panel boczny. Na przykład domyślny motyw Twenty Twelve używa secondary, a Twenty Thirteen używa teritary jako identyfikatora panelu bocznego. Musisz zastąpić secondary identyfikatorem twojego panelu bocznego.

Następnie musisz użyć klienta FTP, aby przesłać ten plik do katalogu js w twoim katalogu motywu WordPress. Jeśli twój katalog motywu nie ma folderu js, musisz go utworzyć, klikając prawym przyciskiem myszy i wybierając opcję „Utwórz nowy katalog” w kliencie FTP.

Krok 2: Zapisanie twojego skryptu JavaScript w motywie WordPress

Teraz, gdy twój skrypt jQuery jest gotowy, nadszedł czas, aby dodać go do twojego motywu. Użyjemy właściwej metody dodawania javascript do twojego motywu, więc po prostu wklej następujący kod do pliku functions.php twojego motywu.

wp_enqueue_script( 'stickywidget', get_template_directory_uri() . '/js/wpb-fadein-widget.js', array('jquery'), '1.0.0', true );

.

To wszystko, teraz możesz dodać widżet w panelu bocznym, który ma się wyświetlać z efektem fadein, a następnie przejdź na twoją witrynę internetową, aby zobaczyć go w działaniu.

Krok 3: Przypięty ostatni widżet po efekcie fade in

Często pożądaną funkcją efektu zanikania jest przewijanie ostatniego widżetu panelu bocznego podczas przewijania strony przez użytkownika. Nazywa się to pływającym widżetem lub przypiętym widżetem.

Jeśli spojrzysz na powyższy kod jQuery, zauważysz, że dodaliśmy klasę CSS wpbstickywidget do widżetu po efekcie zanikania. Możesz użyć tej klasy CSS, aby twój ostatni widżet był przypięty po zaniku. Wszystko, co musisz zrobić, to wkleić ten CSS do arkusza stylów twojego motywu.

.wpbstickywidget { 
position:fixed;
top:0px; 
}

.

Możesz dowolnie modyfikować CSS, aby dostosować go do twoich potrzeb. Możesz zmienić kolor tła lub krój pisma, aby widżet był jeszcze bardziej widoczny. Jeśli chcesz, możesz nawet dodać efekt płynnego przewijania do góry obok twojego ostatniego widżetu, co pozwoli użytkownikom na szybkie przewijanie do tyłu.

Mamy nadzieję, że ten artykuł pomógł ci dodać efekt zanikania do ostatniego widżetu na twoim panelu bocznym WordPress. Aby dowiedzieć się więcej o jQuery, sprawdź najlepsze poradniki jQuery dla WordPress.

Jeśli podobał Ci się ten artykuł, zasubskrybuj nasz kanał YouTube, aby zobaczyć poradniki dotyczące filmów WordPress. Możesz nas również znaleźć na Twitterze i Google+.

Ujawnienie: Nasze treści są wspierane przez czytelników. Oznacza to, że jeśli klikniesz na niektóre z naszych linków, możemy otrzymać prowizję. Zobacz jak WPBeginner jest finansowany, dlaczego to ma znaczenie i jak możesz nas wspierać. Oto nasz proces redakcyjny.

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

Najlepszy zestaw narzędzi WordPress

Uzyskaj BEZPŁATNY dostęp do naszego zestawu narzędzi - zbiór produktów i zasobów związanych z WordPressem, które każdy profesjonalista powinien mieć!

Reader Interactions

10 komentarzyZostaw odpowiedź

  1. Syed Balkhi

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Roger Perkin

    I am trying to implement this on my site but it’s not working

    2 Questions

    are you able to check my site and verify the sidebar div id?

    Also should the enqueue script be get_stylesheet_directory_uri() . and not get_template_directory

    Thanks – would love to get this working
    Roger

  3. Jonathan

    I was wondering can this be done instead off fade in to fade out an sticky widget??

  4. Johnny

    Hi I’m trying to implement this on my page and can’t seem to get it working. Added the .js file to my theme directory’s js folder and added it to my functions.php and no fade is showing. Where exactly should I be adding it in my functions.php as it’s a big file.

    I’m using twenty fourteen, and my sidebar ID is „content-sidebar” which I have changed in the .js file. I have a few other widgets in the sidebar so perhaps something is conflicting?

    Any help is appreciated! Thanks.

    • Johnny

      Here is my .JS Code

      jQuery(document).ready(function($) {
      /**
      * Configuration
      * The container for your sidebar e.g. aside, #sidebar etc.
      */

      var sidebarElement = $(’div#content-sidebar’);

      // Check if the sidebar exists
      if ($(sidebarElement).length > 0) {

      // Get the last widget in the sidebar, and its position on screen

      var widgetDisplayed = false;
      var lastWidget = $(’.widget:last-child’, $(sidebarElement));
      var lastWidgetOffset = $(lastWidget).offset().top -100;

      // Hide the last widget
      $(lastWidget).hide();

      // Check if user scroll have reached the top of the last widget and display it
      $(document).scroll(function() {

      // If the widget has been displayed, we don’t need to keep doing a check.

      if (!widgetDisplayed) {
      if($(this).scrollTop() > lastWidgetOffset) {
      $(lastWidget).fadeIn(’slow’).addClass(’wpbstickywidget’);
      widgetDisplayed = true;
      }
      }
      });
      }
      });

    • WPBeginner Support

      Try deactivating all your plugins and see if it works. You can also use inspect element to see if there are any errors.

      Administrator

  5. bb

    Hi wpbeginner, I love this tweak and the solution you’ve been giving to the community, thanks a million! I have a question, please, how can I integrate or if there’s a plugin/solution that can be use to query application forms submitted by applicants and the result show come up in the admin dashboard, for instance; how many applicant are below 25yrs? and the plugin should fetch the result from the database and show the relevant details in a nice table format that can be exported to excel. Possible? Please advise. Thanks

    • Jean Gérard Bousiquot

      You can check Gravity forms for that, but you’ll need to know some PHP. Otherwise you’ll have to pay a developer to help you achieve what you need.

    • Derek Price

      Isn’t this a bit off topic? Did you do this on purpose? If you have a question for WP staff, why not use the contact feature so you don’t take the blog post off topic?

Zostaw odpowiedź

Dziękujemy za pozostawienie komentarza. Pamiętaj, że wszystkie komentarze są moderowane zgodnie z naszymi polityka komentarzy, a Twój adres e-mail NIE zostanie opublikowany. NIE używaj słów kluczowych w polu nazwy. Przeprowadźmy osobistą i konstruktywną rozmowę.