From 149305c2a13fe6ceb69a5e667ccef51b627297a7 Mon Sep 17 00:00:00 2001 From: Florian Knoch Date: Wed, 11 Mar 2020 11:40:00 +0100 Subject: [PATCH] Addresses #3: Add CSS classes --- slidify.js | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/slidify.js b/slidify.js index cae23da..2935247 100644 --- a/slidify.js +++ b/slidify.js @@ -7,13 +7,17 @@ let topicList; let topicLinks; let topicListSearch; +const activeTopicLinkClass = 'active-topic-link'; +const notMatchingSearchTermsClass = 'not-matching-search-terms'; +const topicListSearchClass = 'topic-list-search'; + function init() { slides = Array.from(document.querySelectorAll('article')); for (let i = 0; i < slides.length; i++) { slides[i].id = `slide${i}`; } - resumeOrGoToStart(); topicList = createTopicList(); + resumeOrGoToStart(); document.addEventListener('keydown', onKeyPressed); } @@ -30,6 +34,13 @@ function goToSlide(index) { if (index >= 0 && index < slides.length) { currentSlide = index; window.location.href = window.location.href.split('#')[0] + `#slide${index}`; + + let oldActiveTopicLink = topicList.querySelector(`.${activeTopicLinkClass}`); + if (oldActiveTopicLink != null) { + oldActiveTopicLink.classList.remove(activeTopicLinkClass); + } + let newActiveTopicLink = topicList.querySelector(`[data-slide="slide${index}"]`); + newActiveTopicLink.classList.add(activeTopicLinkClass); } } @@ -105,7 +116,7 @@ function showPreviousFragment() { function getTopicListContent() { let results = [...document.querySelectorAll('h1, h2, h3, h4, h5, h6')]; - let resultHtml = '