Наведения мыши на карточку товара?

У меня есть вот такие карточки-табы, при наведении на карточку меняються слайды и скроллбар снизу. Подскажите пожалуйста почему скроллбар применяется только к первой карточке? и почему скроллбар появляется не сразу при наведении на карточку, а после того как на другие произошло наведение. Спасибо за помощь, я еще учу js. https://jsfiddle.net/o0j5rv76/29/

function tabs() {

  const tabs = document.querySelectorAll('[data-tabs]');

  let tabsActiveHash = [];

  if (tabs.length > 0) {
    const hash = getHash();
    if (hash && hash.startsWith('tab-')) {
      tabsActiveHash = hash.replace('tab-', '').split('-');
    }
    tabs.forEach((tabsBlock, index) => {
      tabsBlock.classList.add('_tab-init');
      tabsBlock.setAttribute('data-tabs-index', index);
      tabsBlock.addEventListener("mouseover", setTabsAction);
      initTabs(tabsBlock);
    });

  }
  // Установка позиций заголовков
  function setTitlePosition(tabsMediaArray, matchMedia) {
    tabsMediaArray.forEach(tabsMediaItem => {
      tabsMediaItem = tabsMediaItem.item;
      let tabsTitles = tabsMediaItem.querySelector('[data-tabs-titles]');
      let tabsTitleItems = tabsMediaItem.querySelectorAll('[data-tabs-title]');
      let tabsContent = tabsMediaItem.querySelector('[data-tabs-body]');
      let tabsContentItems = tabsMediaItem.querySelectorAll('[data-tabs-item]');
      tabsTitleItems = Array.from(tabsTitleItems).filter(item => item.closest('[data-tabs]') === tabsMediaItem);
      tabsContentItems = Array.from(tabsContentItems).filter(item => item.closest('[data-tabs]') === tabsMediaItem);
      tabsContentItems.forEach((tabsContentItem, index) => {
        if (matchMedia.matches) {
          tabsContent.append(tabsTitleItems[index]);
          tabsContent.append(tabsContentItem);
          tabsMediaItem.classList.add('_tab-spoller');
        } else {
          tabsTitles.append(tabsTitleItems[index]);
          tabsMediaItem.classList.remove('_tab-spoller');
        }
      });
    });
  }
  // Работа с контентом
  function initTabs(tabsBlock) {
    let tabsTitles = tabsBlock.querySelectorAll('[data-tabs-titles]>*');
    let tabsContent = tabsBlock.querySelectorAll('[data-tabs-body]>*');
    const tabsBlockIndex = tabsBlock.dataset.tabsIndex;
    const tabsActiveHashBlock = tabsActiveHash[0] == tabsBlockIndex;
    if (tabsActiveHashBlock) {
      const tabsActiveTitle = tabsBlock.querySelector('[data-tabs-titles]>._tab-active');
      tabsActiveTitle ? tabsActiveTitle.classList.remove('_tab-active') : null;
    }
    if (tabsContent.length) {
      tabsContent = Array.from(tabsContent).filter(item => item.closest('[data-tabs]') === tabsBlock);
      tabsTitles = Array.from(tabsTitles).filter(item => item.closest('[data-tabs]') === tabsBlock);
      tabsContent.forEach((tabsContentItem, index) => {
        tabsTitles[index].setAttribute('data-tabs-title', '');
        tabsContentItem.setAttribute('data-tabs-item', '');

        if (tabsActiveHashBlock && index == tabsActiveHash[1]) {
          tabsTitles[index].classList.add('_tab-active');
        }
        tabsContentItem.hidden = !tabsTitles[index].classList.contains('_tab-active');
      });
    }
  }

  function setTabsStatus(tabsBlock) {
    let tabsTitles = tabsBlock.querySelectorAll('[data-tabs-title]');
    let tabsContent = tabsBlock.querySelectorAll('[data-tabs-item]');
    const tabsBlockIndex = tabsBlock.dataset.tabsIndex;

    function isTabsAnamate(tabsBlock) {
      if (tabsBlock.hasAttribute('data-tabs-animate')) {
        return tabsBlock.dataset.tabsAnimate > 0 ? Number(tabsBlock.dataset.tabsAnimate) : 500;
      }
    }
    const tabsBlockAnimate = isTabsAnamate(tabsBlock);
    if (tabsContent.length > 0) {
      const isHash = tabsBlock.hasAttribute('data-tabs-hash');
      tabsContent = Array.from(tabsContent).filter(item => item.closest('[data-tabs]') === tabsBlock);
      tabsTitles = Array.from(tabsTitles).filter(item => item.closest('[data-tabs]') === tabsBlock);
      tabsContent.forEach((tabsContentItem, index) => {
        if (tabsTitles[index].classList.contains('_tab-active')) {
          if (tabsBlockAnimate) {
            _slideDown(tabsContentItem, tabsBlockAnimate);
          } else {
            tabsContentItem.hidden = false;
          }
          if (isHash && !tabsContentItem.closest('.popup')) {
            setHash(`tab-${tabsBlockIndex}-${index}`);
          }
        } else {
          if (tabsBlockAnimate) {
            _slideUp(tabsContentItem, tabsBlockAnimate);
          } else {
            tabsContentItem.hidden = true;
          }
        }
      });
    }
  }

  function setTabsAction(e) {
    const el = e.target;
    if (el.closest('[data-tabs-title]')) {
      const tabTitle = el.closest('[data-tabs-title]');
      const tabsBlock = tabTitle.closest('[data-tabs]');
      let tabsTitles = tabsBlock.querySelectorAll('[data-tabs-titles]>*');
      let progressesBlock = document.querySelector(".products-search-header__progress-block");
      let progresses = document.querySelectorAll(".products-search-header__progress");
      if (!tabTitle.classList.contains('_tab-active') && !tabsBlock.querySelector('._slide')) {
        let tabActiveTitle = tabsBlock.querySelectorAll('[data-tabs-title]._tab-active');
        tabActiveTitle.length ? tabActiveTitle = Array.from(tabActiveTitle).filter(item => item.closest('[data-tabs]') === tabsBlock) : null;
        tabActiveTitle.length ? tabActiveTitle[0].classList.remove('_tab-active') : null;
        tabTitle.classList.add('_tab-active');
        setTabsStatus(tabsBlock);
        progressesBlock.classList.add("_active");
      }
      tabsBlock.classList.remove("_active")
      tabsTitles.forEach(function(item) {
        item.addEventListener("mouseover", function(e) {
          tabsTitles.forEach(function(e) {
            if (e.classList[1] == "_active") {
              e.classList.remove("_active");
            }
          })
          progresses.forEach(function(e) {
            if (e.classList[1] == "_active") {
              e.classList.remove("_active");
            }
          })
          let attr = item.getAttribute("data-id");
          progresses.forEach(function(e) {
            if (e.getAttribute("data-id") == attr) {
              e.classList.add("_active");

            }
          })
        });
        item.addEventListener("mouseout", function(e) {});
      })
      e.preventDefault();
    }
  }
}

function getHash() {
    if (location.hash) { return location.hash.replace('#', ''); }
}

tabs();
.catalog__cards {
  display: flex;
  flex-wrap: wrap;
  margin: -20px -12px -20px -12px;
  padding: 30px 0px 0px 0px;
}

.catalog__card {
  flex: 0 1 33.3333%;
 height: 100%;
  padding: 20px 12px;
}

.products-search-header__image-slider {
  display: flex;
  position: relative;
}

.products-search-header__progress-block {
  bottom: 4px;
  display: flex;
  flex-direction: row;
  gap: 2px;
  left: 4px;
  opacity: 0;
  position: absolute;
  right: 4px;
  transition: opacity 0.3s ease 0s;
}

.products-search-header__progress-block._active {
  opacity: 1;
}

.products-search-header__progress {
  background: #111;
  border-radius: 1px;
  flex-grow: 1;
  flex-shrink: 1;
  height: 5px;
  opacity: 0.4;
  width: 100%;
  z-index: 1;
  transition: opacity 0.3s ease 0s;
}

.products-search-header__progress._active {
  opacity: 1;
}

.image-slider__tabs {
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  display: flex;
  flex-direction: row;
  z-index: 1;
}

.image-slider__tab {
  flex-grow: 1;
  flex-shrink: 1;
  height: 100%;
  position: relative;
  width: 100%;
}

.image-slider__slide img {
  width: 100%;
  height: 100%;
}
<div class="catalog__cards">
  <div class="catalog__card products-search-header">
    <div class="products-search-header__slide">
      <a href="#" class="products-search-header__content">
        <div class="products-search-header__image">
          <div data-tabs class="products-search-header__image-slider image-slider">
            <nav data-tabs-titles class="image-slider__tabs">
              <button data-id="1" type="button" class="image-slider__tab _tab-active"></button>
              <button data-id="2" type="button" class="image-slider__tab"></button>
              <button data-id="3" type="button" class="image-slider__tab"></button>
            </nav>
            <div data-tabs-body class="image-slider__slides">
              <div class="image-slider__slide">
                <img src="https://klike.net/uploads/posts/2020-04/1588144832_1.jpg" alt="">
              </div>
              <div class="image-slider__slide">
                <img src="https://fikiwiki.com/uploads/posts/2022-02/thumbs/1645026887_46-fikiwiki-com-p-krasivie-kartinki-platya-49.jpg" alt="">
              </div>
              <div class="image-slider__slide">
                <img src="https://bipbap.ru/wp-content/uploads/2017/05/7a499eb85134c69029a4d195cc7e4d1f.jpg" alt="">
              </div>
            </div>
            <div class="products-search-header__progress-block">
              <span data-id="1" class="products-search-header__progress"></span>
              <span data-id="2" class="products-search-header__progress"></span>
              <span data-id="3" class="products-search-header__progress"></span>
            </div>
          </div>
        </div>
      </a>
    </div>
  </div>
  <div class="catalog__card products-search-header">
    <div class="products-search-header__slide">
      <a href="#" class="products-search-header__content">
        <div class="products-search-header__image">
          <div data-tabs class="products-search-header__image-slider image-slider">
            <nav data-tabs-titles class="image-slider__tabs">
              <button data-id="1" type="button" class="image-slider__tab _tab-active"></button>
              <button data-id="2" type="button" class="image-slider__tab"></button>
              <button data-id="3" type="button" class="image-slider__tab"></button>
            </nav>
            <div data-tabs-body class="image-slider__slides">
              <div class="image-slider__slide">
                <img src="https://klike.net/uploads/posts/2020-04/1588144832_1.jpg" alt="">
              </div>
              <div class="image-slider__slide">
                <img src="https://fikiwiki.com/uploads/posts/2022-02/thumbs/1645026887_46-fikiwiki-com-p-krasivie-kartinki-platya-49.jpg" alt="">
              </div>
              <div class="image-slider__slide">
                <img src="https://bipbap.ru/wp-content/uploads/2017/05/7a499eb85134c69029a4d195cc7e4d1f.jpg" alt="">
              </div>
            </div>
            <div class="products-search-header__progress-block">
              <span data-id="1" class="products-search-header__progress"></span>
              <span data-id="2" class="products-search-header__progress"></span>
              <span data-id="3" class="products-search-header__progress"></span>
            </div>
          </div>
        </div>
      </a>
    </div>
  </div>
  <div class="catalog__card products-search-header">
    <div class="products-search-header__slide">
      <a href="#" class="products-search-header__content">
        <div class="products-search-header__image">
          <div data-tabs class="products-search-header__image-slider image-slider">
            <nav data-tabs-titles class="image-slider__tabs">
              <button data-id="1" type="button" class="image-slider__tab _tab-active"></button>
              <button data-id="2" type="button" class="image-slider__tab"></button>
              <button data-id="3" type="button" class="image-slider__tab"></button>
            </nav>
            <div data-tabs-body class="image-slider__slides">
              <div class="image-slider__slide">
                <img src="https://klike.net/uploads/posts/2020-04/1588144832_1.jpg" alt="">
              </div>
              <div class="image-slider__slide">
                <img src="https://fikiwiki.com/uploads/posts/2022-02/thumbs/1645026887_46-fikiwiki-com-p-krasivie-kartinki-platya-49.jpg" alt="">
              </div>
              <div class="image-slider__slide">
                <img src="https://bipbap.ru/wp-content/uploads/2017/05/7a499eb85134c69029a4d195cc7e4d1f.jpg" alt="">
              </div>
            </div>
            <div class="products-search-header__progress-block">
              <span data-id="1" class="products-search-header__progress"></span>
              <span data-id="2" class="products-search-header__progress"></span>
              <span data-id="3" class="products-search-header__progress"></span>
            </div>
          </div>
        </div>
      </a>
    </div>
  </div>
  <div class="catalog__card products-search-header">
    <div class="products-search-header__slide">
      <a href="#" class="products-search-header__content">
        <div class="products-search-header__image">
          <div data-tabs class="products-search-header__image-slider image-slider">
            <nav data-tabs-titles class="image-slider__tabs">
              <button data-id="1" type="button" class="image-slider__tab _tab-active"></button>
              <button data-id="2" type="button" class="image-slider__tab"></button>
              <button data-id="3" type="button" class="image-slider__tab"></button>
            </nav>
            <div data-tabs-body class="image-slider__slides">
              <div class="image-slider__slide">
                <img src="https://klike.net/uploads/posts/2020-04/1588144832_1.jpg" alt="">
              </div>
              <div class="image-slider__slide">
                <img src="https://fikiwiki.com/uploads/posts/2022-02/thumbs/1645026887_46-fikiwiki-com-p-krasivie-kartinki-platya-49.jpg" alt="">
              </div>
              <div class="image-slider__slide">
                <img src="https://bipbap.ru/wp-content/uploads/2017/05/7a499eb85134c69029a4d195cc7e4d1f.jpg" alt="">
              </div>
            </div>
            <div class="products-search-header__progress-block">
              <span data-id="1" class="products-search-header__progress"></span>
              <span data-id="2" class="products-search-header__progress"></span>
              <span data-id="3" class="products-search-header__progress"></span>
            </div>
          </div>
        </div>
      </a>
    </div>
  </div>
</div>


Ответы (0 шт):