Siema.jsでカルーセルを実装しています。 perPage: 2
loop: true
オプションを加えると、インジケーター(ページネーション)の最後の一つが点灯しなくなってしまいます。
どのようにすれば最後の一つのインジケーターを点灯させられるでしょうか?
html
1<div class="siema"> 2 <img src="https://pawelgrzybek.com/siema/assets/siema--pink.svg" alt="Siema image" /> 3 <img src="https://pawelgrzybek.com/siema/assets/siema--yellow.svg" alt="Siema image" /> 4 <img src="https://pawelgrzybek.com/siema/assets/siema--pink.svg" alt="Siema image" /> 5 <img src="https://pawelgrzybek.com/siema/assets/siema--yellow.svg" alt="Siema image" /> 6</div> 7<button class="prev">Prev</button> 8<button class="next">Next</button>
javascript
1class SiemaWithDots extends Siema { 2 3 addDots() { 4 this.dots = document.createElement('div'); 5 this.dots.classList.add('dots'); 6 for (let i = 0; i < this.innerElements.length; i++) { 7 const dot = document.createElement('button'); 8 dot.classList.add('dots__item'); 9 dot.addEventListener('click', () => { 10 this.goTo(i); 11 }) 12 this.dots.appendChild(dot); 13 } 14 this.selector.parentNode.insertBefore(this.dots, this.selector.nextSibling); 15 } 16 17 updateDots() { 18 for (let i = 0; i < this.dots.querySelectorAll('button').length; i++) { 19 const addOrRemove = this.currentSlide === i ? 'add' : 'remove'; 20 this.dots.querySelectorAll('button')[i].classList[addOrRemove]('dots__item--active'); 21 } 22 } 23} 24 25 26const mySiemaWithDots = new SiemaWithDots({ 27 perPage: 2, 28 loop: true, 29 onInit: function() { 30 this.addDots(); 31 this.updateDots(); 32 }, 33 onChange: function() { 34 this.updateDots() 35 }, 36}); 37setInterval(() => mySiemaWithDots.next(), 2000); 38const prev = document.querySelector('.prev'); 39const next = document.querySelector('.next'); 40 41prev.addEventListener('click', () => mySiemaWithDots.prev()); 42next.addEventListener('click', () => mySiemaWithDots.next()); 43 44 45
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/22 03:03
2019/04/22 05:22
2019/04/22 05:41
2019/04/22 07:35