【レスポンシブ】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が得意ですが、本当の特技は薪割りです。

Contact

ご提案依頼、ご相談、お見積もりなど
お気軽にお問合わせください。

03-6403-3259

平日 10:00~19:00

「Web制作について」とお伝え頂ければ
担当者に取次させていただきます。

Mailform

contact@trym.jp
でも受け付けております。