Design comparison
Solution retrospective
Hi, I have updated the solution so only one item is opened and if user clicks the item twice, it is closed.
Any feedback is appreciated, thank you :)
========================================================================
Hi to everyone from Prague ;-)
I have finished my very first challenge using SASS and also a bit of JavaScript. I struggled very much with positioning of the images...
I would be grateful for tips:
- how to position the images in the easier and more working way - especially in mobile version?
- did I miss some useful feature from SASS that can be used in this challenge?
- how to force to close the accordion item/line if another one is opened (so only one accordion item is opened)?
Thank you a lot and happy coding! :-)
Community feedback
- @agusc01Posted over 2 years ago
Hi Iva,
Here's a tip for your third question
- how to force to close the accordion item/line if another one is opened (so only one accordion item is opened)?
The answer like your coding (with "for" and "this." selector)
const accordion = document.getElementsByClassName('accordionItem'); const closeAllItems = () => { for (i = 0; i < accordion.length; i++) { accordion[i].classList.remove('active'); } }; for (i = 0; i < accordion.length; i++) { accordion[i].addEventListener('click', function () { let wasItOpen = this.classList.contains('active'); closeAllItems(); if (wasItOpen === false) { this.classList.add('active'); } }); }
And another way to writing code (which in my opinion is better, using foreach, so I didn't use "this." selector)
const accordions = document.querySelectorAll('.accordionItem'); const closeAllItems = () => { accordions.forEach((accordion) => { accordion.classList.remove('active'); }); }; accordions.forEach((accordion) => { accordion.addEventListener('click', function () { let wasItOpen = accordion.classList.contains('active'); closeAllItems(); if (wasItOpen === false) { accordion.classList.add('active'); } }); });
Keep coding and have fun !
Marked as helpful1
Please log in to post a comment
Log in with GitHubJoin our Discord community
Join thousands of Frontend Mentor community members taking the challenges, sharing resources, helping each other, and chatting about all things front-end!
Join our Discord