let listContainer = document.querySelector('#list-container')
let docfrag = document.createDocumentFragment()
function loadNode (n) {
for (let i = 0; i < n; i++) {
let snippest = document.createElement('li')
snippest.innerHTML = '<a href="#">' + i + '</a>'
docfrag.appendChild(snippest)
}
listContainer.appendChild(docfrag)
}
说个比较蠢的办法,异步请求。先只加载你需要的,点击按钮去请求剩余的,动态加载到页面。给新追加的li添加class用于点击隐藏。
代码写的比较丑,请见谅(使用jquery api)
上面的回答看了一下都不是我的思路,这里说一下我的吧
每次调用loadNode(),把要生成的li的数量当作参数传入,就可以动态生成了
不能完全读清楚你的意思
css:
给li设置一个预留的classname,如.hide {display:none}
现将下面的li的class都加上hide
js:
通过click事件触发判断是否有hide,然后根据情况是删掉这个class还是添加这个class。
大概是这个路线吧。
<button onclick="toggle_fn()">toggle button</button>
<script>
</script>
思路就是让 ul overflow:hidden,然后改变高度就行。
写了个草稿 https://jsfiddle.net/straybug...