[原]JavaScript动态设置滚动条高度
工作中遇到情形如下:一个ul标签,里面有很多li标签,其中有一个代表初始化已选中的<li class="li-on"><li>。
如果ul设置了高度,如下面的ul的style,并且有很多li子标签,那选中的li就被淹没在滚动条下面。
<ul id="ul_module" style="height:180px; overflow-y:scroll;">
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>000</li>
<li>111</li>
<li>222</li>
<li>333</li>
<li>444</li>
<li>555</li>
<li>666</li>
<li>777</li>
<li>888</li>
<li class="li-on">999</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
</ul>
要做的就是要把这个选中的li标签,现在到可见区域内,可以通过js动态的设置滚动条的高度。
具体如下:获得在当前选中的li前面的节点的高度,然后减去ul高度的一半设置给ul的scrollTop,基本上可以把滚动条设置在中间位置。
var ul_module = $('#ul_module');
var ul_height = ul_module.height();
var seleted_li = ul_module.find('.li-on');
if(seleted_li.length) {
var height = seleted_li.height();
var prevCount = seleted_li.prevAll().length;
ul_module.scrollTop(height * prevCount - ul_height/2);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架