backstretchプラグインを使用して、以下のコードでスマホとPCで画像を切り替えています。
↓プラグイン公式サイト
http://www.jquery-backstretch.com/
jQuery
1$(function(){ 2 var windowWidth = window.innerWidth; 3 if (windowWidth >= 768) { 4 $(".home-hero").backstretch([ 5 "img/home/hero/hero1.jpg", 6 "img/home/hero/hero2.jpg", 7 "img/home/hero/hero3.jpg" 8 ], {duration: 5000, fade: 1200}); 9 } else { 10 $(".home-hero").backstretch([ 11 "img/home/hero/hero1-sp.jpg", 12 "img/home/hero/hero2-sp.jpg", 13 "img/home/hero/hero3-sp.jpg" 14 ], {duration: 5000, fade: 1200}); 15 } 16}); 17
上記記述の場合、リサイズ時には画像は切り替わりません。
リサイズ時にも画像が切り替わるようにしたく、いくつか試したのですが上手くいきませんでした。
試した記述 1
jQuery
1$(function(){ 2 $(window).on('load resize', function() { 3 var windowWidth = window.innerWidth; 4 if (windowWidth >= 768) { 5 $(".home-hero").backstretch([ 6 "img/home/hero/hero1.jpg", 7 "img/home/hero/hero2.jpg", 8 "img/home/hero/hero3.jpg" 9 ], {duration: 5000, fade: 1200}); 10 } else { 11 $(".home-hero").backstretch([ 12 "img/home/hero/hero1-sp.jpg", 13 "img/home/hero/hero2-sp.jpg", 14 "img/home/hero/hero3-sp.jpg" 15 ], {duration: 5000, fade: 1200}); 16 } 17 }); 18}); 19
試した記述 2
javascript
1document.addEventListener('DOMContentLoaded', function () { 2 $(function(){ 3 4 var mql = window.matchMedia('screen and (min-width: 768px)'); 5 6 function checkBreakPoint(mql) { 7 if (mql.matches) { 8 // PC向け 9 $(".home-hero").backstretch([ 10 "img/home/hero/hero1.jpg", 11 "img/home/hero/hero2.jpg", 12 "img/home/hero/hero3.jpg" 13 ], {duration: 5000, fade: 1200}); 14 } else { 15 // スマホ向け 16 $(".home-hero").backstretch([ 17 "img/home/hero/hero1-sp.jpg", 18 "img/home/hero/hero2-sp.jpg", 19 "img/home/hero/hero3-sp.jpg" 20 ], {duration: 5000, fade: 1200}); 21 } 22 } 23 24 mql.addListener(checkBreakPoint); 25 26 checkBreakPoint(mql); 27 }); 28}); 29
どちらも、読み込み時は正常に動作しますが、リサイズするとPC用とスマホ用の画像が混じって表示されてしまいます。
解決法はありますでしょうか?