承接上文,这是第5个案例:这节没什么讲的,随便记录下吧,主要是用了flex布局与transform translateY,js部分和案例1类似。
附上项目链接: https://github.com/wesbos/JavaScript30
const panels = document.querySelectorAll('.panel'); function toggleOpen() { // 第一个案例讲过,classList还有其他方法,toggle就是其中一个,他会自动变化class,有则删除,无则新增 this.classList.toggle('open'); } function toggleActive(e) { // 看flex-grow是否变化 if (e.propertyName.includes('flex')) { this.classList.toggle('open-active'); } } panels.forEach(panel => panel.addEventListener('click', toggleOpen)); panels.forEach(panel => panel.addEventListener('transitionend', toggleActive));