1年の間で3パターンの画像セットのスライダーをルーティンで自動的に切り替えたいと思っています。
- 画像3枚セットスライダー(A)(12/11〜3/10の間に表示)
- 画像3枚セットスライダー(B)(3/11〜5/10の間に表示)
- 画像3枚セットスライダー(C)(5/11〜12/10の間に表示)
大きいサイズのHERO画像が合計9枚がHTMLですべて読み込まれると遅延につながるので、$('.xxx').html(xxxxx);
でJS側からHTMLを読み込む想定です。
色々と参考になるものを探し回ったのですが、見つからずご教示ください。
今回、年は関係ないので月と日で条件分岐をして、出力するHTMLを選別できたらと思っています。
【追記】
0. 表示した日を取得し
- mm/dd の形式にする
- 各画像のセットを表示させたい期間を定義
- if文でそれらを比較し
- 変数heroSlideに該当する画像HTMLを格納
- js-heroSlideSwitchクラスにHTMLを出力する
という流れでコードを書きましたが、そもそも日付の比較をどのようにするのか、が分かりませんでした。
if(mm/dd <= mm/dd) で出来るのか、とチャレンジしてみましたが不可能でした。
年を含めた「yyyy/mm/dd」でしたら、gettime()で経過ミリ秒を比較すれば良いのでわかりやすいですが、今回は1年中の日付を見ているので経過ミリ秒も当てにならないのかなと思っていました。
html
1<div class="js-heroSlideSwitch"></div>
javascript
1var HeroMonth = new Date().getMonth()+1; 2var HeroDay = new Date().getDate(); 3 4var HeroNowData = HeroMonth + '/' + HeroDay; 5 6console.log(HeroNowData); 7 8var aHeroStartData = new Date('12/11'); 9var aHeroEndData = new Date('3/10'); 10 11var bHeroStartData = new Date('3/11'); 12var bHeroEndData = new Date('5/10'); 13 14var cHeroStartData = new Date('5/11'); 15var cHeroEndData = new Date('12/10'); 16 17var heroSlide; 18if( aHeroStartData <= HeroNowData >= aHeroEndData ) { 19 heroSlide = heroSlide_A; 20} else if( bHeroStartData <= HeroNowData >= bHeroEndData ) { 21 heroSlide = heroSlide_B; 22} else if( cHeroStartData <= HeroNowData >= cHeroEndData ) { 23 heroSlide = heroSlide_C; 24} 25 26const heroSlide_A = 27'<ul class="p-top-heroList js-sliderHero">' + 28 '<li class="p-top-heroItem">' + 29 '<img src="https://example.com/images/mainimage-sp-1-1.jpg" alt="" class="p-top-heroImgSp">' + 30 '</li>' + 31 '<li class="p-top-heroItem">' + 32 '<img src="https://example.com/images/mainimage-sp-1-2.jpg" alt="" class="p-top-heroImgSp">' + 33 '</li>' + 34 '<li class="p-top-heroItem">' + 35 '<img src="https://example.com/images/mainimage-sp-1-3.jpg" alt="" class="p-top-heroImgSp">' + 36 '</li>' + 37'</ul>'; 38 39const heroSlide_B = 40'<ul class="p-top-heroList js-sliderHero">' + 41 '<li class="p-top-heroItem">' + 42 '<img src="https://example.com/images/mainimage-sp-2-1.jpg" alt="" class="p-top-heroImgSp">' + 43 '</li>' + 44 '<li class="p-top-heroItem">' + 45 '<img src="https://example.com/images/mainimage-sp-2-2.jpg" alt="" class="p-top-heroImgSp">' + 46 '</li>' + 47 '<li class="p-top-heroItem">' + 48 '<img src="https://example.com/images/mainimage-sp-2-3.jpg" alt="" class="p-top-heroImgSp">' + 49 '</li>' + 50'</ul>'; 51 52const heroSlide_C = 53'<ul class="p-top-heroList js-sliderHero">' + 54 '<li class="p-top-heroItem">' + 55 '<img src="https://example.com/images/mainimage-sp-3-1.jpg" alt="" class="p-top-heroImgSp">' + 56 '</li>' + 57 '<li class="p-top-heroItem">' + 58 '<img src="https://example.com/images/mainimage-sp-3-2.jpg" alt="" class="p-top-heroImgSp">' + 59 '</li>' + 60 '<li class="p-top-heroItem">' + 61 '<img src="https://example.com/images/mainimage-sp-3-3.jpg" alt="" class="p-top-heroImgSp">' + 62 '</li>' + 63'</ul>'; 64 65$('.js-heroSlideSwitch').html(heroSlide);
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー