【レスポンシブ】imgタグのalt属性をjQueryでテキストとして出力する
見出しなどのテキストを画像で作成することがよくあるのですが、
レスポンシブでスマホ閲覧時はテキストにしたかったので、
JSでalt属性をテキストとして出力させることで対応しました。
サンプルソース
HTML
例えばH2を画像で作ったとします。
クラスにaltTextを指定してください。
<h2 class="altText"><img src="https://try-m.co.jp/wp-content/uploads/2016/09/150x150.png" alt="ALTテキスト"></h2>
CSS
PCとSPの出し分けのためのクラスを作ります。
.pcはPC閲覧時のみ、.spはSP閲覧時のみ表示されます。
.sp { display: none; } @media screen and (max-width: 768px) { .pc { display: none; } .sp { display: block; } }
JS
altTextのクラスを指定した要素にイベントが発生します。
$(function(){ $('.altText').each(function(){ alt = $(this).find('img').addClass('pc').attr('alt'); $(this).prepend('<span class="sp">' + alt + '</span>'); }); });
imgには自動的に.pcが付与されるのでSP閲覧時は非表示になります。
動作デモ
ウィンドウサイズを変更して試してみてください。
Writer
KO
誕生日に会社のみんなから『世界文学全集』をプレゼントしてもらった読書好きフロントエンド・エンジニアです。WordPressとMovableTypeが得意ですが、本当の特技は薪割りです。