Плавающая стрелка вслед за классом при переключении по пунктам

Есть список элементов, при клике по которым мы скрываем или открываем дополнительный контент. Сейчас "стрелка вправо" реализована при помощи background-image. Как сделать её плавающей (по вертикали соответственно)? Приветствуется css, javascript.

$(".lsf__tab-item").not(":first").hide();
$(".lsf__wrapper  .lsf__tab").click(function() {
  $(".lsf__wrapper  .lsf__tab").removeClass("active-tab").eq($(this).index()).addClass("active-tab");
  $(".lsf__tab-item").hide().eq($(this).index()).fadeIn()
}).eq(0).addClass("active-tab");
.lsf__tab {
  width: 100px;
  display: inline-block;
}

.lsf__tab {
  width: auto;
  display: inline-block;
  display: block;
  cursor: pointer;
}

.lsf__wrapper {
  display: flex;
}

.tabs {
  background: #EBEBEB;
  padding-right: 40px;
}

.active-tab {
  background-image: url(https://cdn-icons-png.flaticon.com/512/109/109617.png);
  background-repeat: no-repeat;
  background-position: 100% 50%;
  background-size: 20%;
  padding-right: 54px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<div class="lsf__wrapper">
  <div class="tabs">
    <ul class="lsf__tabs-nav">
      <li class="lsf__tab">
        <a href="#tab1">
          <p>Вкладка 1</p>
        </a>
      </li>
      <li class="lsf__tab">
        <a href="#tab2">
          <p>Вкладка 2</p>
        </a>
      </li>
      <li class="lsf__tab">
        <a href="#tab3">
          <p>Вкладка 3</p>
        </a>
      </li>
      <li class="lsf__tab">
        <a href="#tab4">
          <p>Вкладка 4</p>
        </a>
      </li>
    </ul>
  </div>
  <div class="tab_content">
    <div class="lsf__tab-item">
      <ul class="lsf__tab-points">
        <li>
          Текст 1
        </li>
      </ul>
    </div>
    <div class="lsf__tab-item">
      <ul class="lsf__tab-points">
        <li>
          Текст 2
        </li>
      </ul>
    </div>
    <div class="lsf__tab-item">
      <ul class="lsf__tab-points">
        <li>
          Текст 3
        </li>
      </ul>
    </div>
    <div class="lsf__tab-item">
      <ul class="lsf__tab-points">
        <li>
          Текст 4
        </li>
      </ul>
    </div>
  </div>
</div>


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

Автор решения: soledar10

Пример

$(".lsf__tab-item").not(":first").hide();
$(".lsf__wrapper  .lsf__tab").click(function() {
  $(".lsf__wrapper  .lsf__tab").removeClass("active-tab").eq($(this).index()).addClass("active-tab");
  $(".lsf__tab-item").hide().eq($(this).index()).fadeIn()
}).eq(0).addClass("active-tab");
:root {
  --arrow-size: 30px;
  --tab-height: 48px;
}

* {
  box-sizing: border-box;
}



.lsf__wrapper {
  display: flex;
}

.tabs {
  background: #EBEBEB;
}

.lsf__tabs-nav {
  position: relative;
  list-style: none;
  padding: 0;
  margin: 0;
}

.lsf__tab {
  width: auto;
  display: inline-block;
  display: block;
  cursor: pointer;
  padding: 15px 94px 15px 40px;
}

.lsf__tab + .lsf__tab {
  border-top: 1px solid #ccc;
}

.lsf__tab-arrow {
  position: absolute;
  top: 0;
  right: 40px;
  background-image: url(https://cdn-icons-png.flaticon.com/512/109/109617.png);
  background-repeat: no-repeat;
  background-position: 0 0;
  background-size: var(--arrow-size) var(--arrow-size);
  width: var(--arrow-size);
  height: var(--arrow-size);
  transition: transform .3s ease;
}

.active-tab:nth-child(1)~.lsf__tab-arrow {
  transform: translateY(calc((var(--tab-height) - var(--arrow-size)) / 2));
}

.active-tab:nth-child(2)~.lsf__tab-arrow {
  transform: translateY(calc(var(--tab-height) + (var(--tab-height) - var(--arrow-size)) / 2));
}

.active-tab:nth-child(3)~.lsf__tab-arrow {
  transform: translateY(calc(var(--tab-height) * 2 + (var(--tab-height) - var(--arrow-size)) / 2));
}

.active-tab:nth-child(4)~.lsf__tab-arrow {
  transform: translateY(calc(var(--tab-height) * 3 + (var(--tab-height) - var(--arrow-size)) / 2));
}

p {
  margin: 0;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<div class="lsf__wrapper">
  <div class="tabs">
    <ul class="lsf__tabs-nav">
      <li class="lsf__tab">
        <a href="#tab1">
          <p>Вкладка 1</p>
        </a>
      </li>
      <li class="lsf__tab">
        <a href="#tab2">
          <p>Вкладка 2</p>
        </a>
      </li>
      <li class="lsf__tab">
        <a href="#tab3">
          <p>Вкладка 3</p>
        </a>
      </li>
      <li class="lsf__tab">
        <a href="#tab4">
          <p>Вкладка 4</p>
        </a>
      </li>
      <li class="lsf__tab-arrow"></li>
    </ul>
  </div>
  <div class="tab_content">
    <div class="lsf__tab-item">
      <ul class="lsf__tab-points">
        <li>
          Текст 1
        </li>
      </ul>
    </div>
    <div class="lsf__tab-item">
      <ul class="lsf__tab-points">
        <li>
          Текст 2
        </li>
      </ul>
    </div>
    <div class="lsf__tab-item">
      <ul class="lsf__tab-points">
        <li>
          Текст 3
        </li>
      </ul>
    </div>
    <div class="lsf__tab-item">
      <ul class="lsf__tab-points">
        <li>
          Текст 4
        </li>
      </ul>
    </div>
  </div>
</div>

→ Ссылка