[原]JavaScript動態設定捲軸高度

來源:互聯網
上載者:User
工作中遇到情形如下:一個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);}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.