画像マウスオーバーでキャプションを表示

メディアをアップロードした際に、「キャプション」項目にテキストを設定された画像を挿入した場合はキャプションショートコードが生成され、ページ内の各画像下にその設定したテキストが表示されます。
今回、キャプションをあらかじめ非表示にしておいてマウスオーバーすると表示されるような実装をしてみました。プラグインを探してみたのですがいい感じのものが見つけれなかった。(ご存知であれば、ご教授いただければと)
まずはキャプションの表示のされ方
ショートコードは以下のようなフォーマットになります。
[caption id="attachment_25" align="alignnone" width="300"] <a href="画像URL"> <img src="画像URL" alt="キャプション" width="画像幅" height="画像高" class="size-medium wp-image-[id]" /> </a> キャプション [/caption]
このショートコードからデフォルトでは以下のように出力されます。
<div id="attachment_[id]" style="width: [画像幅+10px]" class="wp-caption alignnone"> <a href="画像URL" data-slb-group="66" data-slb-active="1" data-slb-internal="0"> <img src="画像URL" alt="キャプション" width="画像幅" height="画像高" class="size-medium wp-image-[id]" /> </a> <p class="wp-caption-text">キャプション</p> </div>
3.9からはHTML5対応され、以下のように出力することも可能になりました。
<figure id="attachment_[id]" style="width: [画像幅];" class="wp-caption alignnone"> <a href="画像URL" data-slb-group="66" data-slb-active="1" data-slb-internal="0"> <img src="画像URL" alt="キャプション" width="画像幅" height="画像高" class="size-medium wp-image-[id]" /> </a> <figcaption class="wp-caption-text">キャプション</figcaption> </figure>
figureタグの説明と対応ブラウザのバージョンはこちら HTML <figure> Tag
キャプションショートコードをHTML5対応にする
テーマによっては、(functions.phpなどで)追加してくれているものが増えてきています。
追加する場合は、finctions.phpに以下を追加して下さい。
add_action( 'after_setup_theme', 'my_theme_support'); function my_theme_support(){ add_theme_support( 'html5', array( 'caption', )); }
+10pxの余白を除去
キャプション挿入のショートコードを使用した際に画像の右側に10pxついてしまうのでつけないようにしました。気になるようであれば、以下そのまま子テーマのfunctions.phpに追記してください。
function remove_caption_padding( $width) { return $width - 10; } add_filter( 'img_caption_shortcode_width', 'remove_caption_padding');
本題ですが、2パターン試してみました。
それぞれデモを用意してので試してみて下さい。
1.画像をずらしてキャプションを挿入
画像にマウスオーバーすると全体が上にスライドしてキャプションが見えるようになります。デモ
/* caption.css */ .wp-caption { position: relative; overflow: hidden; } .wp-caption p.wp-caption-text { background-color: #111; color: #EEE; padding: 5px 10px; margin: 0px; }
// caption.js jQuery(document).ready(function($) { $('div.wp-caption').each(function(i) { var img_ = $('img', this); var img_height = img_.attr('height'); var p_height = $('p', this).outerHeight(); $(this).height(img_height); $(this).hover(function() { img_.animate({marginTop : -p_height}, 500); }, function() { img_.animate({marginTop : '0'}, 500); }); }); });
2.画像上にキャプションを挿入
画像にマウスオーバーすると、画像上にキャプションを表示します。デモ
/* caption.css */ .wp-caption { position: relative; overflow: hidden; } .wp-caption p.wp-caption-text { background: none repeat scroll 0 0 #111111; color: #EEE; opacity: 0.8; padding: 5px 10px; margin: 0; }
// caption.js jQuery(document).ready(function($) { $('div.wp-caption').each(function(i) { var p_ = $('p', this); var img_ = $('img', this); var img_height = img_.attr('height'); var p_height = $('p', this).outerHeight(); $(this).height(img_height); $(this).hover(function() { p_.animate({marginTop : -p_height}, 500); }, function() { p_.animate({marginTop : '0'}, 500); }); }); });
実装方法
以下は、caption1.cssとcaption1.jsをそれぞれテーマフォルダ下/cssフォルダ、/jsフォルダに配置したファイルを読み込む例です。functions.phpに追記して下さい。独自のCSSやJSを読み込む
CSSの方は、中身をstyle.cssに追加する方法でもいいです。
function wp_caption_scripts() { wp_enqueue_style( 'caption-slide-css', get_stylesheet_directory_uri() . '/css/caption1.css', false, null ); wp_enqueue_script( 'caption-slide-js', get_stylesheet_directory_uri() . '/js/caption1.js', null, null, true ); } add_action( 'wp_print_scripts', 'wp_caption_scripts');
関連記事
-
-
Twenty Fourteen クレジットを非表示・変更方法
Twenty Fourteenにも最下部に「Proudly powered by WordPress」というコピーライトが表示されます。それを削除もしくは変更するには、footer.phpを編集して行
-
-
Twenty Thirteen ナビゲーションメニューを固定
ナビゲーションメニューを固定にしてみました。下方にスクロールしても最上部に固定されるやつです。 スクリプト 以下のjsファイルを用意して下さい。 nav要素のidは、ソースもしくはheade
-
-
アイキャッチにマウスオーバーすると投稿タイトルを表示
WordPressのフォーラムから定期的に流入があるため、対応をいくつか探ってみました。トピックは、「サムネイルにマウスオーバーするとタイトルが表示されるようにしたい」 ちなみに、投稿内のキャプ
-
-
条件を付けて訪問時に開くポップアップを実装できる「WordPress Popup」
「WordPress Popup」は、ユーザの訪問時にポップアップを開くように実装できるプラグインです。それぞれ条件によって開くかどうかを設定することができます。 ダウンロード / サンプル イン
-
-
開発やテストに便利なプラグイン
開発やカスタマイズに使えそうなプラグインを集めてみました。 テーマのカスタマイズには、使用中のテンプレートファイルなどを表示してくれると便利ですね。個人的には、テーマ開発の際に、実行しているSQ
-
-
翻訳ファイルの子テーマ化
子テーマでfunctions.phpなどを変更していくと翻訳すべき項目にぶつかっていくと思います。例を挙げると_()の部分で、Wordpressが翻訳を行ってくれる部分です。 個人的には、日本語
-
-
jQueryをCDNから読み込む
WordPressではデフォルトでjQueryライブラリが同梱されています。この記事では、それをやめて、CDNから読み込み、使用する方法を解説します。 WordPress 3.6 3.9 4.0
-
-
「続きを読む」(moreタグ)をカスタマイズ
WordPressではほとんどのテーマでは、複数の投稿を表示するアーカイブページ(カテゴリー別、タグ別、年月日別、作成者別など)ではmoreタグ(<!--more-->)を挿入することで、
-
-
Twenty Fourteen 「投稿日」や"先頭固定表示"を非表示
日付を表示する部分は、全てtwentyfourteen_posted_onに集約されています。該当部分をコメントアウトしたかたちで子テーマのfunctions.phpに追加して下さい。 「投稿日
-
-
「最近の投稿」ウィジェット カスタマイズ
目次 ウィジェットを削除 標準の設定 特定のカテゴリーに属する投稿を除外 カスタマイズ プラグイン 「最近の投稿」ウィジェットを削除 「最近の投稿」ウィジェット
Comment
WordPress | 画像マウスオーバーでキャプションを表示
メディアをアップロードした際に、「キャプション」項目にテキストを設定された画像を挿入した場合はキャプションショートコードが生成され、ページ内の各画像下にそ... http://t.co/3nzrJDbAqf