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

jQueryを使用してWordPressの最後のサイドバーウィジェットをフェードインする方法

最近、あるユーザーから、サイドバーの最後のウィジェットにフェードイン効果を追加する方法について質問がありました。この人気のあるjQueryエフェクトは、多くの有名サイトやブログで使用されています。ユーザーがページをスクロールすると、サイドバーの最後のウィジェットがフェードインして表示されます。このアニメーションによって、ウィジェットは目を引き、目立つようになり、クリックスルー率が劇的に向上する。この投稿では、jQueryを使ってWordPressの最後のサイドバーウィジェットをフェードインする方法を紹介する。

下記はそのデモである:

Fade in last sidebar widget in WordPress

このチュートリアルでは、テーマファイルを変更します。先に進む前にテーマをバックアップしておくことをお勧めします。

ステップ1:フェードイン効果のためのJavaScriptの追加

まず最初に、WordPressテーマにjQueryコードをJavaScriptファイルとして区切りで追加する必要があります。まず、メモ帳のようなテキストエディターで空のファイルを開きます。次に、この空のファイルをデスクトップにwpb_fadein_widget.jsとして保存し、その中に以下のコードを貼り付けます。

[SKX1]
jQuery(ドキュメント).ready(関数($) {)
/**
* 構成
* サイドバーのコンテナ 例: aside、#sidebar など。
*/

var sidebarElement = $(‘div#secondary’);

// サイドバーが存在するかチェックする
if ($(sidebarElement).length > 0) { // サイドバーが存在するかチェックする。

// サイドバーの最後のウィジェットと画面上の位置を取得する

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

// 最後のウィジェットを非表示にする
$(lastWidget).hide();

// ユーザーのスクロールが最後のウィジェットの上部に達したかどうかをチェックし、ウィジェットを表示する
$(document).scroll(function() { // 最後のウィジェットを表示する

// ウィジェットが表示された場合、チェックを続ける必要はありません。

if (!widgetDisplayed) { // ウィジェットが表示されていれば、チェックを続ける必要はありません。
if($(this).scrollTop() > lastWidgetOffset) { // ウィジェットが表示されている場合、チェックを続ける必要はありません。
$(lastWidget).fadeIn(‘slow’).addClass(‘wpbstickywidget’);
widgetDisplayed = true;
}
}
});
}
});
[SKX2]

このコードで最も重要な行は、var sidebarElement = $('div#secondary'); です。

これはサイドバーを含むdivのidです。テーマによってサイドバーのコンテナ div が異なる場合があるので、テーマがサイドバーに使用しているコンテナ id を調べる必要があります。

Google Chromeのinspect elementツールで調べることができます。Google Chromeでサイドバーを右クリックし、要素の検査を選択します。

Finding sidebar container id in source code

ソースコードで、サイドバーのコンテナ div を見ることができます。例えば、デフォルト設定のTwenty Twelveテーマはsecondaryを、Twenty ThirteenはteritaryをサイドバーコンテナのIDとして使用しています。secondaryをあなたのサイドバーコンテナ div の ID に置き換える必要があります。

次に、FTPクライアントを使用して、このファイルをWordPressテーマディレクトリ内のjsフォルダにアップロードする必要があります。テーマディレクトリにjsフォルダがない場合は、FTPクライアントで右クリックして「新規ディレクトリを作成」を選択して作成する必要があります。

ステップ2:WordPressテーマのJavaScriptをエンキューイングする

jQueryスクリプトの準備ができたので、いよいよテーマに追加します。テーマのfunctions.phpファイルに以下のコードを貼り付けるだけです

[cbk1]

これですべてです。サイドバーにフェードイン効果で表示させたいウィジェットを追加して、あなたのサイトにアクセスして、実際に表示されているのを確認してください。

ステップ 3: フェードイン効果の後、最後のウィジェットを先頭固定表示にする

フェードイン効果でよく望まれる機能は、ユーザーがスクロールするときに最後のサイドバーウィジェットをスクロールさせることです。これは、フローティングウィジェットまたは先頭固定表示ウィジェットと呼ばれます。

上のjQueryコードを見ると、フェードイン効果の後にwpbstickywidgetCSSクラスをウィジェットに追加していることに気づくでしょう。このCSSクラスを使って、最後のウィジェットをフェードイン後に先頭固定表示にすることができます。必要なことはすべて、この CSS をテーマのスタイルシートに貼り付けるだけです。

[cbk2]

CSSは自由に変更してください。ウィジェットをより目立たせるために背景色やフォントを変更できます。必要であれば、最後のウィジェットの横にスムーズスクロールを追加して、ユーザーがすぐにスクロールバックできるようにすることもできます。

この投稿がWordPressサイドバーの最後のウィジェットにフェードイン効果を追加するのにお役に立てば幸いです。より多くのjQueryの良さについては、WordPressのための最高のjQueryチュートリアルをチェックしてください。

この投稿が気に入ったなら、WordPress動画チュートリアルのYouTubeチャンネルを購読してください。Twitterや Google+でもご覧いただけます。

情報開示 私たちのコンテンツは読者支援型です。これは、あなたが私たちのリンクの一部をクリックした場合、私たちはコミッションを得ることができることを意味します。 WPBeginnerの資金源 をご覧ください。3$編集プロセスをご覧ください。

アバター

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.

究極のWordPressツールキット

ツールキットへの無料アクセス - すべてのプロフェッショナルが持つべきWordPress関連製品とリソースのコレクション!

Reader Interactions

9件のコメント返信を残す

  1. 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

  2. Jonathan

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

  3. 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.

      管理者

  4. 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?

返信を残す

コメントありがとうございます。すべてのコメントは私たちのコメントポリシーに従ってモデレートされ、あなたのメールアドレスが公開されることはありませんのでご留意ください。名前欄にキーワードを使用しないでください。個人的で有意義な会話をしましょう。