Ostatnio jeden z naszych użytkowników zapytał nas, jak dodać efekt zanikania dla ostatniego widżetu na pasku bocznym. Ten popularny efekt jQuery jest używany na wielu znanych stronach internetowych i blogach. Gdy użytkownik przewija stronę w dół, ostatni widżet na pasku bocznym zanika i staje się widoczny. Animacja sprawia, że widżet przyciąga wzrok i jest zauważalny, co znacznie zwiększa współczynnik klikalności. W tym artykule pokażemy, jak dodać efekt zanikania do ostatniego widżetu na pasku bocznym w WordPress przy użyciu jQuery.
Poniżej znajduje się demo tego, jak to będzie wyglądać:

W tym samouczku będziesz modyfikować pliki swojego motywu. Zaleca się wykonanie kopii zapasowej motywu przed dalszymi działaniami.
Krok 1: Dodawanie kodu JavaScript dla efektu zanikania
Najpierw musisz dodać kod jQuery do swojego motywu WordPress jako oddzielny 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 pulpicie i wklej do niego poniższy kod.
jQuery(document).ready(function($) {
/**
* Configuration
* The container for your sidebar e.g. aside, #sidebar etc.
*/
var sidebarElement = $('div#secondary');
// 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;
}
}
});
}
});
Najważniejsza linia w tym kodzie to var sidebarElement = $('div#secondary');.
To jest identyfikator elementu div zawierającego Twój pasek boczny. Ponieważ każdy motyw może używać różnych kontenerów paska bocznego, musisz znaleźć identyfikator kontenera, którego Twój motyw używa dla paska bocznego.
Możesz to sprawdzić, używając narzędzia „Zbadaj element” w Google Chrome. Kliknij prawym przyciskiem myszy na swoim pasku bocznym w Google Chrome, a następnie wybierz „Zbadaj element”.

W kodzie źródłowym będziesz mógł zobaczyć swój kontener bocznego paska. Na przykład, domyślny motyw Twenty Twelve używa secondary, a Twenty Thirteen używa tertiary jako identyfikatora dla kontenera bocznego paska. Musisz zastąpić secondary identyfikatorem swojego kontenera bocznego paska.
Następnie musisz użyć klienta FTP, aby przesłać ten plik do folderu js w katalogu motywu WordPress. Jeśli katalog Twojego motywu nie ma folderu js, musisz go utworzyć, klikając prawym przyciskiem myszy i wybierając „Utwórz nowy katalog” w swoim kliencie FTP.
Krok 2: Dodawanie skryptów JavaScript w motywie WordPress
Teraz, gdy twój skrypt jQuery jest gotowy, czas dodać go do swojego motywu. Użyjemy właściwej metody dodawania javascriptu do swojego motywu, więc po prostu wklej poniższy kod do pliku functions.php swojego 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 do swojego paska bocznego, który chcesz, aby pojawił się z efektem zanikania, a następnie odwiedź swoją stronę internetową, aby zobaczyć go w akcji.
Krok 3: Sprawienie, by ostatni widżet był lepki po efekcie zanikania
Często pożądaną funkcją z efektem zanikania jest sprawienie, aby ostatni widżet paska bocznego przewijał się wraz z przewijaniem przez użytkownika. Nazywa się to pływającym widżetem lub przyklejonym 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 ostatni widżet był przyklejony po jego zaniknięciu. Wystarczy wkleić ten kod CSS do arkusza stylów Twojego motywu.
.wpbstickywidget {
position:fixed;
top:0px;
}
Zachęcamy do modyfikacji CSS, aby spełnić Twoje potrzeby. Możesz zmienić kolor tła lub czcionki, aby widżet był jeszcze bardziej widoczny. Jeśli chcesz, możesz nawet dodać efekt płynnego przewijania do góry obok ostatniego widżetu, co pozwoli użytkownikom szybko przewinąć z powrotem.
Mamy nadzieję, że ten artykuł pomógł Ci dodać efekt zanikania do ostatniego widżetu na pasku bocznym WordPress. Więcej poradników jQuery znajdziesz w najlepszych samouczkach jQuery dla WordPress.
Jeśli podobał Ci się ten artykuł, zasubskrybuj nasz kanał YouTube z samouczkami wideo dotyczącymi WordPressa. Możesz nas również znaleźć na Twitterze i Google+.

Roger Perkin
Próbuję to zaimplementować na mojej stronie, ale nie działa
2 pytania
czy możesz sprawdzić moją stronę i zweryfikować identyfikator div paska bocznego?
Czy enqueue script powinien być get_stylesheet_directory_uri() . a nie get_template_directory
Dzięki – chętnie bym to uruchomił
Roger
Jonathan
Zastanawiałem się, czy można to zrobić zamiast zanikania, aby zniknął lepki widżet??
Wsparcie WPBeginner
Spróbuj zastąpić fadeIn przez fadeOut w kodzie JavaScript.
Admin
Johnny
Cześć, próbuję zaimplementować to na mojej stronie i nie mogę sprawić, by działało. Dodałem plik .js do folderu js mojego katalogu motywu i dodałem go do mojego functions.php, ale nie widać żadnego zanikania. Gdzie dokładnie powinienem go dodać w moim functions.php, ponieważ jest to duży plik.
Używam motywu twenty fourteen, a mój identyfikator paska bocznego to „content-sidebar”, który zmieniłem w pliku .js. Mam kilka innych widżetów na pasku bocznym, więc może coś się kłóci?
Każda pomoc jest mile widziana! Dzięki.
Johnny
Oto mój kod JS
jQuery(document).ready(function($) { /** * Konfiguracja * Kontener dla twojego paska bocznego, np. aside, #sidebar itp. */
var sidebarElement = $(‘div#content-sidebar’);
// Sprawdź, czy istnieje pasek boczny
if ($(sidebarElement).length > 0) {
// Pobierz ostatni widżet na pasku 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 dotarło do góry ostatniego widżetu i wyświetl go $(document).scroll(function() {
// Jeśli widżet został już wyświetlony, nie musimy dalej sprawdzać.
if (!widgetDisplayed) { if($(this).scrollTop() > lastWidgetOffset) { $(lastWidget).fadeIn(‘slow’).addClass(‘wpbstickywidget’); widgetDisplayed = true; } } }); } });
Wsparcie WPBeginner
Spróbuj dezaktywować wszystkie swoje wtyczki i sprawdź, czy działa. Możesz również użyć narzędzia „Inspect Element”, aby sprawdzić, czy nie ma żadnych błędów.
Admin
bb
Cześć wpbeginner, uwielbiam tę modyfikację i rozwiązania, które dajesz społeczności, dzięki wielkie! Mam pytanie, proszę, jak mogę zintegrować lub czy istnieje wtyczka/rozwiązanie, które można wykorzystać do zapytania o formularze zgłoszeniowe złożone przez kandydatów, a wyniki pojawią się w panelu administracyjnym, na przykład; ilu kandydatów ma poniżej 25 lat? i wtyczka powinna pobrać wyniki z bazy danych i wyświetlić odpowiednie szczegóły w ładnej tabeli, którą można wyeksportować do Excela. Możliwe? Proszę o poradę. Dzięki
Jean Gérard Bousiquot
Możesz to sprawdzić w Gravity Forms, ale będziesz musiał znać trochę PHP. W przeciwnym razie będziesz musiał zapłacić programiście, aby pomógł Ci osiągnąć to, czego potrzebujesz.
Derek Price
Czy to nie jest trochę poza tematem? Zrobiłeś to celowo? Jeśli masz pytanie do personelu WP, dlaczego nie skorzystasz z funkcji kontaktu, aby nie odbiegać od tematu wpisu na blogu?