tyukavin_denis
@tyukavin_denis
web developer

Как при наведении на один блок показывать другой (only js)?

Вот пример:
codepen.io/slow_D/pen/KrxaEQ

Необходимо при наведении на один блок показывать соответствующий ему другой блок (при наведении на синий блок должен показываться первый div во второй li).
Решение должно быть гибкое, ибо блоков что в одной, что во второй li может быть много. Прошу помощи, не хватает навыков для реализации универсального решения.
  • Вопрос задан
  • 1397 просмотров
Решения вопроса 1
На jQuery что то вроде этого можно сделать:
<ul>
  <li>
    <div class="p1 pe" data-block="pt1"></div>
    <div class="p2 pe" data-block="pt2"></div>
  </li>
  <li>
    <div class="pt pt1"></div>
    <div class="pt pt2"></div>
  </li>
</ul>


$(function(){
  $('.pe').on('mouseenter', function(){
    var block = $(this).data('block');
    $('.'+block).fadeTo(200,1);
  });
  $('.pe').on('mouseleave', function(){
    $('.pt').fadeTo(200,0);
  });
});


codepen.io/AmateR/pen/yJxrVR
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Cannabiscat
Что-нибудь типа такого?
document.getElementsByClassName('p1')[0].onmouseover = function() {
  document.getElementsByClassName('pt1')[0].style.opacity = 1;
}
document.getElementsByClassName('p1')[0].onmouseout = function() {
  document.getElementsByClassName('pt1')[0].style.opacity = 0;
}

с другими классами по такому же сценарию поступить. Честно говоря, не совсем понятен требующийся результат.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы