画像マウスオーバーでキャプションを表示
メディアをアップロードした際に、「キャプション」項目にテキストを設定された画像を挿入した場合はキャプションショートコードが生成され、ページ内の各画像下にその設定したテキストが表示されます。
今回、キャプションをあらかじめ非表示にしておいてマウスオーバーすると表示されるような実装をしてみました。プラグインを探してみたのですがいい感じのものが見つけれなかった。(ご存知であれば、ご教授いただければと)
まずはキャプションの表示のされ方
ショートコードは以下のようなフォーマットになります。
[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 Twelve "コメントをどうぞ"を消す
今回は「Twenty Twelve」で標準で投稿タイトル下に出力されるリンク"コメントをどうぞ"|"Leave a reply"を非表示にする方法を。(コメントやピンバックが1件の場合は"1件のフィー
-
-
ウィジェット関連のカスタマイズ・プラグイン
リンクマネージャー WordPress 3.5バージョンアップ以降にリンクマネージャーを追加するには以下のフィルタを設定もしくはプラグインをインストールして下さい。 プラグイン Link M
-
-
Twenty Fourteen 「投稿日」や"先頭固定表示"を非表示
日付を表示する部分は、全てtwentyfourteen_posted_onに集約されています。該当部分をコメントアウトしたかたちで子テーマのfunctions.phpに追加して下さい。 「投稿日
-
-
Lightbox (画像ポップアップ) プラグイン
WordPressで使用できるLightbox(画像ポップアップ)プラグインのまとめ ひとまずインストール・有効化するだけで使用可能です。(3.7/3.8/3.9) blueimp lig
-
-
RSS/Atomフィード カスタマイズ
RSSフィードのカスタマイズ 標準で出力されるフィード WordPressの各種ページで出力されるフィードは以下になると思います。 投稿:投稿のフィード @全てのページ サイトのコメント:
-
-
Twitterのツイートボタンの設置
Twitterのツイートボタンの設置はプラグインを使用しなくても容易に実装できるようです。 ソーシャルボタン設置のプラグインはこちらにいちおうまとめています。 Tweetボタンの設置コード 公式
-
-
ブルー・オレンジ・ピンクと選べるテーマ「Bouquet」をカスタマイズ
プレビューはこちら ダウンロード 目次 ヘッダー画像の高さを変更 アイキャッチをアップロード h1タグがやたら多いので最適化 画像をレスポンシブ対応 フォント「Sorts Mill
-
-
多言語化プラグイン「qTranslate」
ブログを多言語化しようと思い、プラグイン「qTranslate」を導入してみました。 General Settingsで使用する言語を選択する ★使用する言語を選択 管理画面「設定」⇒「Lang
-
-
「カテゴリー」ウィジェット カスタマイズ
「カテゴリー」ウィジェットは、管理画面ではあまりカスタマイズできません。必要であれば、フックやプラグインを用いて表示設定などの変更を行うことができます。 目次 「カテゴリー」ウィジェットの追加
-
-
テーブル実装プラグイン「TablePress」 + レスポンシブ対応
「TablePress」は、WordPressにテーブルを実装できるプラグインです。専用のレスポンシブ化のプラグインもリリースされています。ダウンロード デモ (PCの場合はブラウザの幅狭めてみたり







Comment
WordPress | 画像マウスオーバーでキャプションを表示
メディアをアップロードした際に、「キャプション」項目にテキストを設定された画像を挿入した場合はキャプションショートコードが生成され、ページ内の各画像下にそ... http://t.co/3nzrJDbAqf