templates/frontend/market/_partials/scroll-category.html.twig line 1

  1. <div class="category-bar">
  2.     <div class="scroll-container">
  3.         <div class="categories">
  4.             {% for categorie in categories  %}
  5.                 <div class="category-card rounded-pill d-flex justify-content-center">
  6.                     <span><a href="{{ path('app_market_search_by_category',{'id': categorie.id }) }}">{{ categorie.title }}</a></span>
  7.                 </div>
  8.             {% endfor %}
  9.         </div>
  10.         <button class="scroll-btn scroll-left-btn hidden">
  11.             <i class="las la-angle-left text-white"></i>
  12.         </button>
  13.         <button class="scroll-btn scroll-right-btn">
  14.             <i class="las la-angle-right text-white"></i>
  15.         </button>
  16.     </div>
  17. </div>
  18. <script>
  19.     const scrollContainer = document.querySelector('.scroll-container');
  20.     const scrollLeftBtn = document.querySelector('.scroll-left-btn');
  21.     const scrollRightBtn = document.querySelector('.scroll-right-btn');
  22.     const categories = document.querySelector('.categories');
  23.     scrollLeftBtn.addEventListener('click', () => {
  24.         scrollContainer.scrollLeft -= 100;
  25.         updateScrollButtonsVisibility();
  26.     });
  27.     scrollRightBtn.addEventListener('click', () => {
  28.         scrollContainer.scrollLeft += 100;
  29.         updateScrollButtonsVisibility();
  30.     });
  31.     function updateScrollButtonsVisibility() {
  32.         scrollLeftBtn.classList.toggle('hidden', scrollContainer.scrollLeft === 0);
  33.         scrollRightBtn.classList.toggle('hidden', scrollContainer.scrollLeft + scrollContainer.offsetWidth === scrollContainer.scrollWidth);
  34.     }
  35.     window.addEventListener('resize', updateScrollButtonsVisibility);
  36.     updateScrollButtonsVisibility();
  37. </script>