最近よく利用するのでメモがてら。
以下コード入れて、imgにクラス .js-resp 付与すると画面サイズで切り替えます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | $(function() { var $elem = $('.js-resp'); var sp = '_sp.'; var pc = '_pc.'; var replaceWidth = 768; function imgResp() { var windowWidth = parseInt($(window).width()); $elem.each(function() { var $this = $(this); if(windowWidth >= replaceWidth) { $this.attr('src', $this.attr('src').replace(sp, pc)); } else { $this.attr('src', $this.attr('src').replace(pc, sp)); } }); } imgResp(); var resizeTimer; $(window).on('resize', function() { clearTimeout(resizeTimer); resizeTimer = setTimeout(function() { imgResp(); }, 200); }); }); |
画像にはファイル名の後ろに _pc と _sp と命名すればOK、HTMLに記述する場合には _pc の方のみを記述してください。
1 | <img src="./assets/img/hoge_pc.jpg" class="js-resp" alt=""> |
要件に応じて命名やウィンドウサイズは適宜変更してくださいね。