【レスポンシブ】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

KO

誕生日に会社のみんなから『世界文学全集』をプレゼントしてもらった読書好きフロントエンド・エンジニアです。WordPressとMovableTypeが得意ですが、本当の特技は薪割りです。

Page Topへ