这是一个纯手工的手风琴的web效果,没有借助jq以及其他乱七八糟的框架,下图是我更改过后的,这边放的代码是最原始的,喜欢的拿去改。
原生截图是酱紫的(这里多亏小白兔的帮忙,他的网站是http://wp.dabaitui.cn/)
手风琴css
* { margin: 0; padding: 0; } #czh-ul { list-style: none; width: 400px; margin: 10px; padding: 0; } #czh-ul li { background: #ccc; list-style: none; margin: 0 0 1px 0; padding: 0; transition: height 0.5s; /* 添加过渡效果 */ } #czh-ul li.czh { height: 100px; /* 展开时的高度 */ } #czh-ul li h3 { font-size: 13px; color: #fff; background: #666; padding: 5px; cursor: pointer; } #czh-ul li div { display: none; padding: 5px; height: 80px; }
手风琴html
<div> <ul id="czh-ul"> <li> <h3>acctit01</h3> <div>accdiv01</div> </li> <li> <h3>acctit02</h3> <div>accdiv02</div> </li> <li> <h3>acctit03</h3> <div>accdiv03</div> </li> <li> <h3>acctit04</h3> <div>accdiv04</div> </li> <li> <h3>acctit05</h3> <div>accdiv05</div> </li> <li> <h3>acctit06</h3> <div>accdiv06</div> </li> </ul> </div>
手风琴js
const lis = document.querySelectorAll('#czh-ul li') function init(){ for(let i = 0; i < lis.length; i++){ lis[i].classList.remove('czh') } lis[lis.length-1].classList.add('czh') } document.querySelector('#czh-ul').addEventListener('mouseenter',function(){ for(let i = 0; i < lis.length; i++){ lis[i].addEventListener('mouseover',function(){ for(let index = 0; index < lis.length; index++){ lis[index].classList.remove('czh') } this.classList.add('czh') }) lis[i].addEventListener('mouseout',function(){ lis[i].classList.remove('czh') }) } }) document.querySelector('#czh-ul').addEventListener('mouseout',function(){ init() }) init()