javascript - 我怎样才能使可折叠的内容默认传播(显示)

标签 javascript html css

我在 w3school ( https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_collapsible_symbol ) 中找到了该教程,但默认情况下隐藏了可折叠的内容。以下部分是链接中的代码。请帮助我找到如何将默认隐藏的可折叠内容更改为默认传播(显示)的内容。谢谢!

var coll = document.getElementsByClassName("collapsible");
var i;

for (i = 0; i < coll.length; i++) {
  coll[i].addEventListener("click", function() {
    this.classList.toggle("active");
    var content = this.nextElementSibling;
    if (content.style.maxHeight){
      content.style.maxHeight = null;
    } else {
      content.style.maxHeight = content.scrollHeight + "px";
    } 
  });
}
/* Style the button that is used to open and close the collapsible content */
.collapsible {
  background-color: #777;
  color: white;
  cursor: pointer;
  padding: 18px;
  width: 100%;
  border: none;
  text-align: left;
  outline: none;
  font-size: 15px;
}
/* Add a background color to the button if it is clicked on (add the .active class with JS), and when you move the mouse over it (hover) */
.active, .collapsible:hover {
  background-color: #555;
}

.collapsible:after {
  content: '\002B';/* Unicode character for "plus" sign (+) */
  color: white;
  font-weight: bold;
  float: right;
  margin-left: 5px;
}

.active:after {
  content: "\2212";/* Unicode character for "minus" sign (-) */
}

.content {
  padding: 0 18px;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.2s ease-out;
  background-color: #f1f1f1;
}
<h2>Animated Collapsibles</h2>

<p>A Collapsible:</p>
<button class="collapsible">Open Collapsible</button>
<div class="content">
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>

<p>Collapsible Set:</p>
<button class="collapsible">Open Section 1</button>
<div class="content">
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
<button class="collapsible">Open Section 2</button>
<div class="content">
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
<button class="collapsible">Open Section 3</button>
<div class="content">
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>

最佳答案

就像@Andy Hoffman 所说的那样,只需再做一件事即可获得所有风​​格

var coll = document.getElementsByClassName("collapsible");
var i;

for (i = 0; i < coll.length; i++) {
    coll[i].addEventListener("click", function() {
       this.classList.toggle("active");
       var content = this.nextElementSibling;
       if (content.style.maxHeight) {
           content.style.maxHeight = null;
       } else {
          content.style.maxHeight = content.scrollHeight + "px";
       }
    });

   coll[i].classList.toggle("active");
   coll[i].nextElementSibling.style.maxHeight = coll[i].scrollHeight + "px";

关于javascript - 我怎样才能使可折叠的内容默认传播(显示),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54847932/

相关文章:

javascript - 在同一个 javascript 函数中创建多个跨度

html - Bootstrap btn 组垂直文本对齐

javascript - 使用node下载slack文件

javascript - 如何使用原始 javascript 获取选定的选项

javascript - Div 保持原始大小图像不拉伸(stretch)/溢出

html - 如何修复翻转 div 背面的 Bootstrap 下拉 z-index?

html - Z-索引问题

javascript - 设置背景位置Javascript

javascript - 手动调用 jQuery document.ready 函数

javascript - 加载时增量 JQuery 函数