切换以展开div(多个)

时间:2019-04-05 17:04:44

标签: javascript toggle

我目前正在使用这种jQuery方法,将div元素的大小受到限制,但是一旦单击,将其扩展以适合文本的长度:

document.getElementById("toggle").onclick = function(e) {
  e.preventDefault();
  var s = document.getElementById("expandable").style;
  if (s.height)
    s.height = "";
  else
    s.height = "auto";

}
#expandable {
  width: 20em;
  height: 60px;
  overflow: hidden;
  -ms-text-overflow: ellipsis;
  -o-text-overflow: ellipsis;
  text-overflow: ellipsis;
}
<pre><code><p id="expandable">Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p><a id="toggle">more</a></code></pre>

http://jsfiddle.net/TbdgL/

但是,尝试获取所有要扩展的div行列表时遇到麻烦。我认为我必须对其进行调整,以使“可扩展”和“切换”都成为类,但是我似乎无法使其工作。我是新来的!

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

您是对的!编写此功能的一种好方法是使用CSS类!

我用新的here分叉了您的jsfiddle。

基本上,您可以检查元素是否已经具有类expanded,如果元素上存在该类,则将其删除,否则,添加它!

expanded类仅将元素的height设置为auto