suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Fügen Sie :Hover-Effekte dynamisch zu mehreren Elementen hinzu

<p>Ist es möglich, programmgesteuert einen <code>Hover</code>-Effekt hinzuzufügen? In unserem System, in dem es mehrere Elemente gibt, die eine einzelne Einheit darstellen (aber aus anderen Gründen in mehrere Elemente aufgeteilt werden müssen), sollten sie in manchen Fällen beim Schweben gemeinsam neu eingefärbt werden. Ist es möglich, programmgesteuert einen <code>Hover</code>-Effekt hinzuzufügen? Oder ist das eine gute Praxis? </p> <p>Ich konnte dieses Problem lösen, indem ich <code>my_own_css_class</code> verwendet habe, um es allen Elementen beim Hover hinzuzufügen. Aber ich habe das Gefühl, dass es für mich von Vorteil sein könnte, ihnen programmgesteuert einen <code>Hover</code>-Effekt zu verleihen (z. B. möchte ich, dass der Hover-Effekt verschwindet, wenn die Maus sie verlässt usw.). </p>
P粉203792468P粉203792468471 Tage vor490

Antworte allen(1)Ich werde antworten

  • P粉564192131

    P粉5641921312023-08-16 12:53:06

    我不确定我是否正确理解了问题,但据我所知,有两种可能的解决方案,它们都包括使用'my_own_css_class'

    1. CSS方法
    <div class="hoverable-element">元素1</div>
    <div class="hoverable-element">元素2</div>
    <div class="hoverable-element">元素3</div>
    .hoverable-element {
      /* 无 */
    }
    
    .hoverable-element:hover {
      /* 重新着色 */
    }
    1. JavaScript方法
    <div class="hoverable-element-js">元素1</div>
    <div class="hoverable-element-js">元素2</div>
    <div class="hoverable-element-js">元素3</div>
    .hoverable-element-js {
      /* 无 */
    }
    
    .hover-effect-js {
      /* 重新着色 */
    }
    const elements = document.querySelectorAll('.hoverable-element-js');
    
    elements.forEach(element => {
      element.addEventListener('mouseover', () => {
        element.classList.add('hover-effect-js');
      });
    
      element.addEventListener('mouseout', () => {
        element.classList.remove('hover-effect-js');
      });
    });

    Antwort
    0
  • StornierenAntwort