javascript - 当我通过 JS 单击按钮时,如何折叠(前后)一个部分?
问题描述
我试图通过 JS 理解 DOM。当我单击按钮时(名为全部折叠,我希望下面的部分折叠(消失),但缓慢而平稳(过渡?),然后当我再次单击同一个按钮时,我希望它再次出现,等等......我怎样才能通过JS实现这一点?
我写了这段代码,但仍然不能重复工作,它只工作一次:
btn_all.addEventListener("click", funct1);
function funct1(e) {
section2.style.transition = "all ease 5s";
section2.style.display = "none";
for (let i = 0; i < 100; i++) {
btn_all.addEventListener("click", funct2);
function funct2(e1) {
section2.style.display = "block";
}
}};
过渡不起作用...
解决方案
display: none 是即时的 - 您需要更改一些属性(如高度或不透明度),然后在完成后设置 display: none ,并将过渡放在基本样式中。
此外,可访问性指南(和良好的品味)通常规定过渡应该快速 - 给人以运动的印象,而不是让他们坐在动画中。250ms是一个相当不错的速度
例如
.section {
transition: opacity ease-in .25s;
}
.section.fade-out {
opacity: 0;
}
此外,jquery 有一些简单的转换通常可以工作,除非你在样式中变得超级疯狂,如果有的话。例如
$(".section2").fadeOut(250);
它消除了对大量空值检查、浏览器兼容性变通方法等的需求,并且有很多简单的快捷方式。非常适合初学者开发人员的快速开发和易于使用。
推荐阅读
- netcdf - xarray DataArray.where() 掩蔽时减少坐标
- android - 始终收到错误“模拟器:ANSICON:cmd.exe:不受支持的进程。” 在 Android Studio 中
- ruby-on-rails - Shopify Polaris 页面标签不起作用 - Rails 和 reactJS
- c# - 将一些字符串连接到 C# 中的全局变量中
- javascript - 获取不同的两个数组到变量
- android - 是否可以显式检查 onRequestPermissionsResult 中的权限?
- java - Android 在后台运行一段时间后杀死了我的应用
- ruby-on-rails-5 - 在 Rails 5.2 上使用两种不同用户模型的 Bcrypt
- scala - Scala Option[String] map 变成 Iterable
- python - 无法使用 GeckoDriver 找到一组匹配的功能