最も必要とされている時に、信頼できるWordPressチュートリアルを。
WordPress入門ガイド
WPBカップ
2500万人以上
当社のプラグインを使用しているウェブサイト
16+
WordPress経験年数
3000+
専門家によるWordPressチュートリアル

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

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

以下は、それがどのように見えるかのデモです。

WordPressで最後のサイドバーウィジェットをフェードインする

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

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

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

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;  
}
}
});
}
});

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

これは、サイドバーを含む div の ID です。各テーマでサイドバーコンテナ div が異なる場合があるため、テーマがサイドバーに使用しているコンテナ ID を見つける必要があります。

Google Chrome のインスペクト要素ツールを使用すると、これを調べることができます。Google Chrome でサイドバーを右クリックし、[要素を検証] を選択するだけです。

ソースコードでサイドバーコンテナIDを見つける

ソースコードを確認すると、サイドバーコンテナのdivが表示されます。例えば、デフォルトのTwenty TwelveテーマではサイドバーコンテナのIDとしてsecondaryが、Twenty Thirteenではtertiaryが使用されています。secondaryを、お使いのサイドバーコンテナdivのIDに置き換える必要があります。

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

ステップ2:WordPressテーマでのJavaScriptのエンキュー

jQueryスクリプトの準備ができたので、テーマに追加する時間です。テーマにJavaScriptを追加する適切な方法を使用しますので、次のコードをテーマのfunctions.phpファイルに貼り付けるだけです。

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

これで完了です。サイドバーにフェードイン効果で表示したいウィジェットを追加し、ウェブサイトにアクセスして動作を確認できます。

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

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

上記のjQueryコードを見ると、フェードインエフェクトの後でウィジェットにwpbstickywidget CSSクラスを追加したことに気づくでしょう。このCSSクラスを使用して、最後のウィジェットがフェードインした後にスティッキーにすることができます。テーマのスタイルシートにこのCSSを貼り付けるだけです。

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

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

この記事がWordPressサイドバーの最後のウィジェットにフェードイン効果を追加するのに役立ったことを願っています。その他のjQueryの優れた機能については、WordPress向けの最高のjQueryチュートリアルをご覧ください。

この記事が気に入った場合は、WordPress のビデオチュートリアルについては、YouTube チャンネルを購読してください。また、TwitterGoogle+ でも私たちを見つけることができます。

開示: 当社のコンテンツは読者によってサポートされています。これは、一部のリンクをクリックすると、手数料が発生する可能性があることを意味します。WPBeginnerがどのように資金調達されているか、なぜそれが重要なのか、そしてどのように私たちをサポートできるかを確認してください。こちらが当社の編集プロセスです。

究極のWordPressツールキット

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

読者とのインタラクション

9 CommentsLeave a Reply

  1. サイトに実装しようとしていますが、うまくいきません

    質問 2件

    私のサイトを確認して、サイドバーのdiv IDを検証してもらえますか?

    また、enqueue script は get_template_directory ではなく get_stylesheet_directory_uri() . になるべきですか?

    ありがとうございます。これを機能させたいです。
    ロジャー

  2. フェードインの代わりに、スティッキーウィジェットをフェードアウトすることはできますか?

  3. こんにちは、これを私のページに実装しようとしていますが、うまくいかないようです。.jsファイルをテーマディレクトリのjsフォルダに追加し、functions.phpに追加しましたが、フェードが表示されません。functions.phpのどこに正確に追加すればよいですか?ファイルが大きいので。

    Twenty Fourteen を使用しており、サイドバー ID は「content-sidebar」ですが、これは .js ファイルで変更しました。サイドバーには他にもいくつかのウィジェットがありますが、何か競合しているのでしょうか?

    どんな助けでも感謝します!ありがとうございます。

    • こちらが私の.JSコードです

      jQuery(document).ready(function($) { /** * 設定
      * サイドバーのコンテナ。例: aside, #sidebar など。
      */

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

      // サイドバーが存在するかどうかを確認します
      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; } } }); } });

    • すべてのプラグインを無効にして、機能するかどうかを確認してください。また、要素を検査してエラーがないか確認することもできます。

      管理者

  4. こんにちはwpbeginnerさん、この調整とコミュニティへの解決策の提供に感謝します。ありがとうございます!質問があります。応募者によって送信されたアプリケーションフォームをクエリするにはどうすればよいですか?または、プラグイン/ソリューションはありますか?結果は管理ダッシュボードに表示されます。たとえば、25歳未満の応募者は何人ですか?そして、プラグインはデータベースから結果を取得し、エクスポート可能な素敵なテーブル形式で関連詳細を表示する必要があります。可能ですか?アドバイスをお願いします。ありがとうございます。

返信する

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