代码之家  ›  专栏  ›  技术社区  ›  Eyeball

jquery用户界面手风琴滚动问题

  •  1
  • Eyeball  · 技术社区  · 14 年前

    我有一个页面,其中有几个部分的长度在jquery ui协议中有很大的变化。如果我打开一个新的分区(它会折叠上面较长的分区之一),我会留在页面的底部。因为各部分高度明显不同,所以我不能使用Autoheight功能,除非它看起来很奇怪。是否有任何方法可以使用ScrollTo自动转到我刚刚展开的部分的顶部?

    1 回复  |  直到 13 年前
        1
  •  2
  •   Drew Gaynor    13 年前

    可以将函数绑定到 accordionchange 事件和使用jquery scrollTop() :

    javascript

    $(function () {
        $("#accordion").accordion({
            autoHeight: false,
            header: "h3"
        });
    
        $('#accordion').bind('accordionchange', function (event, ui) {
            $(window).scrollTop(ui.newHeader.offset().top);
        });
    });
    

    HTML

    <div id="accordion">
        <div id="accordion-one">
            <h3><a href="#">First</a></h3>
            <div>Some lengthy text</div>
        </div>
        <div id="accordion-two">
            <h3><a href="#">Second</a></h3>
            <div>Less lengthy text</div>
        </div>
        <div id="accordion-three">
            <h3><a href="#">Third</a></h3>
            <div>Other text</div>
        </div>
    </div>
    

    我在FF8测试过这个。

    链接