【WordPress】スクロール連動&ぬるぬるホバーを1クリックで!最新の『C-Code Animation Block』を完全自作してみた【体験版コード公開】

当ページのリンクには広告が含まれています。

おしゃれな海外サイトや、コンバージョン率(成約率)の高いランディングページ(LP)を見て、こう思ったことはありませんか?

  • 「スクロールしたときに、文字や画像が下からふわっと出てくるようにしたい」
  • 「お問い合わせボタンをピコピコ動かして、もっと目立たせたい」
  • 「ボタンにマウスを乗せたとき、カクつかずにぬるぬるっと浮き上がらせたい」

これらを実装しようとすると、今までは重い外部ライブラリを読み込んだり、複雑なJavaScriptのコードを書く必要がありました。

そこで今回、WordPressのブロックエディタ(Gutenberg)に完全対応し、1クリックで16種類以上のリッチな演出を設定できる完全オリジナルプラグイン『C-Code Animation Block(CAB)』を自作しました!

もくじ

動作デモ

※アニメーション効果は画面から消えてもう一度視界に入れば動くように設定しています。

①フェードイン

②スライドアップ

③スライドイン(左から)

④スライドイン(右から)

⑤ズームイン

⑥ズームアウト

⑦バウンドイン

⑧ポップイン

⑨回転登場

⑩くるっと反転(横)

⑪くるっと反転(縦)

⑫ブラーイン(ぼかし解除)

⑬ピコピコ(無限)

⑭ふわふわ浮遊(無限)

⑮チカチカ点滅(無限)

⑯ブルブル震える(無限)

「体験版」プラグインでできること

まずは、プラグインがどのようにしてWordPress上で動くのか、その「仕組み」と「感動」を今すぐ体感していただけるよう、基本の動きを詰め込んだ『体験版(Trial)』のソースコードを無料公開します!

体験版は、自作ブロックプラグインの「最初の一歩」として、以下の基本機能を搭載しています。

  • 1クリックで簡単設置: ブロックエディタのメニューから直感的に挿入可能。
  • 定番の3大エフェクト: 「フェードイン」「スライドアップ」「ズームイン」の動きを体験。
  • 自由な時間調整: 再生時間を秒単位で自由に設定。
  • 他のブロックを何でも内包: テキスト、画像、ボタン、グループブロックなど、WordPressの標準ブロックなら何でも中に入れて動かせます。

【体験版】ソースコード一式

体験版はわずか3つのファイルで構成されています。以下のコードをコピペして、c-code-animation-block というフォルダにまとめるだけで自作プラグインが完成します!

①c-code-animation-block.php

<?php
/**
 * Plugin Name: C-Code Animation Block (Trial)
 * Description: テキストや画像にアニメーション効果を追加できるカスタムブロック。
 * Version: 1.0.0
 * Author: あなたのお名前
 * License: GPL-2.0-or-later
 * Requires at least: 6.0
 * Requires PHP: 7.4
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

function cab_register_animation_block_trial() {
    $plugin_data = get_file_data( __FILE__, array( 'Version' => 'Version' ) );
    $version     = ! empty( $plugin_data['Version'] ) ? $plugin_data['Version'] : '1.0.0';

    wp_register_script(
        'cab-trial-js',
        plugins_url( 'block.js', __FILE__ ),
        array( 'wp-blocks', 'wp-element', 'wp-editor', 'wp-components' ),
        $version
    );

    wp_register_style(
        'cab-trial-style',
        plugins_url( 'style.css', __FILE__ ),
        array(),
        $version
    );

    register_block_type( 'cab/animation-block-trial', array(
        'editor_script' => 'cab-trial-js',
        'style'         => 'cab-trial-style',
    ) );
}
add_action( 'init', 'cab_register_animation_block_trial' );

②block.js

( function( blocks, element, editor, components ) {
    var el = element.createElement;
    var InnerBlocks = editor.InnerBlocks;
    var InspectorControls = editor.InspectorControls;
    var PanelBody = components.PanelBody;
    var SelectControl = components.SelectControl;
    var TextControl = components.TextControl;

    blocks.registerBlockType( 'cab/animation-block-trial', {
        title: 'C-Code アニメーション(体験版)',
        icon: 'performance',
        category: 'layout',
        attributes: {
            animationType: { type: 'string', default: 'fade-in' },
            duration: { type: 'string', default: '1' }
        },
        edit: function( props ) {
            var attributes = props.attributes;
            var blockStyle = {
                animationName: attributes.animationType,
                animationDuration: attributes.duration + 's',
                animationFillMode: 'both',
                padding: '15px',
                border: '1px dashed #ccc'
            };
            return [
                el( InspectorControls, { key: 'setting' },
                    el( PanelBody, { title: 'アニメーション設定', initialOpen: true },
                        el( SelectControl, {
                            label: 'エフェクトの種類',
                            value: attributes.animationType,
                            options: [
                                { label: 'フェードイン', value: 'fade-in' },
                                { label: 'スライドアップ', value: 'slide-up' },
                                { label: 'ズームイン', value: 'zoom-in' }
                            ],
                            onChange: function(val) { props.setAttributes({ animationType: val }); }
                        } ),
                        el( TextControl, { label: '再生時間(秒)', value: attributes.duration, onChange: function(val) { props.setAttributes({ duration: val }); } } )
                    )
                ),
                el( 'div', { key: 'content', style: blockStyle }, el( InnerBlocks ) )
            ];
        },
        save: function( props ) {
            var attributes = props.attributes;
            var blockStyle = {
                animationName: attributes.animationType,
                animationDuration: attributes.duration + 's',
                animationFillMode: 'both'
            };
            return el( 'div', { style: blockStyle }, el( InnerBlocks.Content ) );
        }
    } );
} )( window.wp.blocks, window.wp.element, window.wp.editor, window.wp.components );

③style.css

/* 体験版:開いた瞬間に動くシンプルなエフェクト */
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes slide-up { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }
@keyframes zoom-in { from { opacity: 0; transform: scale(0.8); } to { opacity: 1; transform: scale(1); } }

【超簡単】コピペしたコードをWordPressプラグインにする3ステップ

「自分でコードをコピペして、本当にWordPressで動くの…?」と不安な方も大丈夫。
以下の3つのステップ通りに進めるだけで、わずか3分であなただけの自作アニメーションブロックがWordPressに実装されます!

パソコン(WindowsまたはMac)のデスクトップで作業を行ってください。

ステップ 1:フォルダとファイルを作る

  1. デスクトップなどの分かりやすい場所に、c-code-animation-block という名前の新しいフォルダを作ります。
  2. 作ったフォルダの中に、テキストエディタを使って、以下の3つの空のファイルを作成します。
    • c-code-animation-block.php
    • block.js
    • style.css

これで、プラグインのフォルダ構成は以下のようになります。

ステップ 2:コードをコピー&ペーストする

ステップ1で用意した3つのファイルに、先ほど上に掲載したソースコード(①〜③)をそれぞれそのまま全てコピー&ペーストして保存します。

ステップ 3:ZIP形式に圧縮してWordPressにアップロードする

  1. 作成した c-code-animation-block フォルダをフォルダごと右クリックして、ZIP形式に圧縮します。
    • ➡ c-code-animation-block.zip というファイルができ上がります。
  2. あなたのWordPressの管理画面にログインし、メニューから 「プラグイン」 > 「新規プラグインを追加」 を開きます。
  3. 画面最上部にある 「プラグインのアップロード」 ボタンをクリックし、先ほど作った c-code-animation-block.zip を選択してインストールし、「プラグインを有効化」 をクリックします。

これで体験版が完了!ですが…

体験版プラグインを導入すると、ページを開いた瞬間に全てのブロックが一斉に動き出す「感動の自作体験」を味わっていただけます!

しかし、ここからがプロの現場で使えるかどうかの分かれ道です。
体験版はあくまで仕組みを体感するためのもの。実際のサイト(フロント)側でスクロールを常時監視する仕組み(frontend.js)がありません。
そのため、ページの下部にある要素まで、ユーザーがたどり端に(見えない画面外で)アニメーションがすべて終了してしまいます。

これでは、現代の洗練されたWebサイトのような「スクロールして、その文字や画像が画面に見えた瞬間にドラマチックに登場させる」という演出ができません。

さらに、ボタンを「ピコピコ」「ふわふわ」と動かし続けてクリック率を爆発的に上げる無限ループ機能や、「触った瞬間に吸い付くようにぬるぬる動くホバーエフェクト」は、体験版の構造では干渉(カクつき)が起きてしまい実装不可能です。

「サイトの直帰率を減らし、お問い合わせや売上を本気で増やしたい」

そう考えるプロのWebデザイナー、ブロガー、アフィリエイターの皆様のために、これら全ての神機能を詰め込んだ【完全版(Pro仕様:全4ファイル構成)】のソースコードを、以下の有料エリアで1文字も漏らさず完全公開します。

一歩先を行くプロ仕様 of サイト演出を手に入れましょう!

【完全版(Pro仕様)】あなたのサイトの成約率を最大化する神機能


有料パートで公開する完全版(Version 1.0.0)は、単におしゃれにするだけでなく、「サイトの売上(コンバージョン)を上げる」ために設計されたモンスタープラグインです。

体験版から以下のプロ機能が追加され、ファイル構成もスクロール連動用JS(frontend.js)を含んだ全4ファイルへと進化します!

  1. 【完全版の目玉】画面に入った瞬間に起動(frontend.js 連動)
    ページをスクロールし、そのブロックが画面内に表示された瞬間に初めてアニメーションが始まります。LPのストーリー展開に合わせて、ユーザーに最高のタイミングで情報を届けられます。
  2. 「1回のみ再生」or「何度も再生」の切り替え機能
    画面を往復スクロールした際、最初の1度だけ動かすか、画面に入るたびに何度も動かすかをトグルスイッチ1つで制御。ユーザーの離脱を防ぎます。
  3. 大増量!全16種類のエフェクト & イージング調整
    洗練されたサイトに必須の「ブラーイン(ぼかし解除)」や、3D反転、バウンドなど16種類。さらに「後半だけゆっくり減速する」プロの緩急(イージング)や移動距離(px)も0.1秒刻みで数値指定可能。
  4. 【カタカタ防止】完全干渉回避の「ぬるぬるホバーエフェクト」
    「少し浮かす」「少し拡大」「少し透明(ボタン用)」など、マウスを乗せた時のリアクションを独立実装。3層のHTML構造(親・子・孫)を採用しているため、既存のアニメーションとバッティングせず、限界までなめらかな「ぬるぬる感」を実現。
  5. 無限ループ速度の個別設定
    お問い合わせボタンなどを「ピコピコ」「ふわふわ」と無限ループさせる際、ループ1回あたりの速度を個別指定可能。超高速ブルブルから、高級感のある超スロー浮遊まで自由自在。
  6. エディタ専用の「スマート1px赤枠 & 右上ラベル」デバッグ機能
    管理画面でのみ、1pxの赤い破線枠とエフェクト名が右上に表示されます(背景は完全透明)。「どのブロックにどのエフェクトをかけたか」が一目でわかり、作業効率が3倍になります。
  7. 最新のWordPress・PHP環境へ完全適合 & キャッシュバグ防止
    Requires at least: 6.0 / Requires PHP: 7.4 準拠。プラグインヘッダーのバージョンから自動でアセットバージョンを生成するため、コードを書き換えた際のブラウザキャッシュによる「動かないバグ」を完全にシャットアウトします。

【完全版】全4ファイル・ソースコード(コピペ用)

よかったらシェアしてね!
  • URLをコピーしました!
もくじ