Вы можете сделать это с помощью переходов CSS3:
#sliding_div {
/* must have a set height to work */
-webkit-transition: height 2s ease;
-moz-transition: height 2s ease;
-o-transition: height 2s ease;
transition: height 2s ease;
}
С div, как это:
<div style="height: 0px;" id="sliding_div"><!-- content --></div>
<div onclick="var sliding_div = document.getElementById('sliding_div'); if (sliding_div.style.height == '0px') sliding_div.style.height = '300px'; else sliding_div.style.height = '0px';"><img /></div>
Имейте в виду, что только IE10 будет генерировать эффект слайда здесь, поскольку IE9 и ниже в настоящее время не поддерживают переходы afaik. Кнопка просто заставит div открываться и закрываться в этих браузерах.