我希望有与 jQuery Slidedown 类似的效果,但是without使用 jQuery 或任何其他库。我知道这是“可能的”,因为 jQuery 中的任何事情都可以用纯 JavaScript 完成。只是更难。
我不能使用 jQuery,因为所有内容都必须用我自己的代码编写,而不使用任何库。
有没有人用纯 JavaScript 做过类似的事情或任何效果?
既然已经是 2014 年了,为什么不使用 CSS 过渡而只改变元素的 height 属性呢?Fiddle
CSS:
.wrapper {
transition:height 1s ease-out;
height:0;
overflow:hidden;
}
HTML:
<div id="wrapper">
//content
</div>
JavaScript:
document.getElementById("wrapper").style.height = //content height +"px";
2020 编辑(处理未知高度):
现在已经是 2020 年了,现在更明显的是我们应该依赖 CSS 效果来实现此类动画。
然而,针对这个答案提出了一个有效的观点——您需要指定在 js 代码中设置动画的元素的高度,并且您可能事先不知道这个值。
所以六年后,我添加了几行额外的代码来处理这个案例。
因此,如果我们使用与 2014 年旧示例中相同的 CSS 和 HTML,这就是新的 JS。新小提琴!
const slideDown = elem => elem.style.height = `${elem.scrollHeight}px`;
slideDown(document.getElementById("wrapper"));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)