[原]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);
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM