简体   繁体   中英

Accordion open on click & preview on hover?

Screen shot of issue

I am trying to preview the contents of the accordion on hover. Then leave it open on click. I included the code pen. Please help.

https://codepen.io/sarah-omelia/pen/QWdYXMy

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h2>Accordion with symbols</h2>
<p>In this example we have added a "plus" sign to each button. When the user clicks on the button, the "plus" sign is replaced with a "minus" sign.</p>

<div>
 <button id="acchead" class="accordion">Section 1</button>
  <div class="accordion-body">
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
  </div>
  
   <button id="acchead" class="accordion">Section 2</button>
  <div class="accordion-body">
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
  </div>
  
  <button id="acchead" class="accordion">Section 3</button>
  <div class="accordion-body">
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
  </div>
</div>

something like that?

 document.querySelectorAll('button.accordion').forEach(bt=> { bt.onclick = evt => bt.classList.toggle('active') })
 .accordion { background-color: #eee; color: #444; cursor: pointer; padding: 18px; width: 100%; text-align: left; outline: none; font-size: 15px; transition: 0.4s; padding: 1em; border: 1px solid blue; }.active, .accordion:hover { background-color: #ccc; }.accordion:after { content: '\002B'; color: #777; font-weight: bold; float: right; margin-left: 5px; }.accordion.active:after { content: '\2212'; }.accordion-body { border: 1px solid red; max-height: 0; transition: max-height 0.15s ease-out; overflow: hidden; }.active + div.accordion-body, .accordion:hover + div.accordion-body { max-height: 500px; transition: max-height 0.25s ease-in; }
 <h2>Accordion with symbols</h2> <p>In this example we have added a "plus" sign to each button. When the user clicks on the button, the "plus" sign is replaced with a "minus" sign.</p> <div> <button class="accordion">Section 1</button> <div class="accordion-body"> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p> </div> <button class="accordion">Section 2</button> <div class="accordion-body"> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p> </div> <button class="accordion">Section 3</button> <div class="accordion-body"> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p> </div> </div>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM