【发布时间】:2019-10-16 15:32:44
【问题描述】:
我正在制作一个页面,该页面的文本以可见标题开始不可见。如果单击标题,则文本将显示在下方。我正在添加收尾工作,并希望使文本滑入。 切换由 Javascript 控制,而不是 jQuery。理想的情况是仅使用 CSS 执行此操作,但对 Javascript 开放。 下面的 HTML 内容,用 Javascript 控制下面的切换。
已经尝试了一个纯 CSS 的解决方案(如下),但不起作用;
function view(id) { //this reads the div id variable passed in with each 'onclick' trigger
var x = document.getElementsByClassName("descriptions"); //this will find all your descriptions MUST HAVE "description" class
var i;
for (i = 0; i < x.length; i++) {
if (x[i].id !== id)
x[i].style.display = "none"; //this will turn off all your descriptions except current one
}
var e = document.getElementById(id); //this will toggle on/off your active description
if (e.style.display == 'block')
e.style.display = 'none';
else
e.style.display = 'block';
}
.descriptions {
display: none;
height: 100;
transition: height 0.8s;
}
<div class="toggle" id="a" onclick="view('a1');">
Chocolate cake with Nutella icing
<div id="a1" class="descriptions">
How to make a chocolate cake.
</div>
</div>
【问题讨论】:
-
请用您尝试过的 CSS 过渡更新我为您制作的 sn-p
-
@mplungjan 嘿,我应该在问题中提到。我计算机上代码中的显示已设置为“无”。不幸的是,仍然没有顺利过渡
-
我没有回答,只是让你成为了你可以做的 sn-p ;) minimal reproducible example - 但请用你的 CSS 更新你的问题,也许是另一个 sn-p。 JS 可以更改类名并触发 css 过渡
-
对不起!我误解了。修复了 CSS。
-
使用
display: none无论如何使用transition都不会顺利工作。
标签: javascript html css