/* 设置样式 */ .slideDown { max-height: 0; overflow: hidden; transition: max-height 0.3s ease-out; } /* 实现动画效果 */ .slideDownActive { max-height: 1000px; }
首先需要设置样式,使用max-height属性来限制下拉内容的高度,并使用overflow:hidden来隐藏超出的内容。为了实现动画效果,引入transition属性,在0.3秒的时间内,设置最大高度的变化,以缓慢展示下拉内容。
接着,需要使用JavaScript来操控CSS样式。当用户点击下拉按钮时,将为相应的元素添加slideDownActive类,这会使元素的max-height的值被设置为一个足够大的数值,使得下拉内容完全显示。相反,当用户收起下拉内容时,将相应的元素重新添加slideDown类,这会将max-height的值重新设为0,使内容被隐藏。
// 获取按钮和内容 const button = document.querySelector('.button'); const content = document.querySelector('.content'); // 添加事件监听 button.addEventListener('click', function() { if (content.classList.contains('slideDownActive')) { // 如果内容已展开则收起 content.classList.remove('slideDownActive'); content.classList.add('slideDown'); } else { // 如果内容未展开则下拉 content.classList.remove('slideDown'); content.classList.add('slideDownActive'); } });
最后,只需监听按钮的点击事件,根据内容的当前状态为其添加响应的类名即可。如果内容已经展开,则移除slideDownActive类并添加回slideDown类;如果内容未展开,则移除slideDown类并添加回slideDownActive类。这样,就可以实现滑动下拉效果了。