2

我一直在寻找非常简单的东西:How to make a side navigation expand with animation on page load,但是我经常去的所有教程网站似乎都没有。

我能找到的最接近的是这个 jQuery 示例:http ://codeblitz.wordpress.com/2009/04/15/jquery-animated-collapsible-list/

我已经设法像这样删除列表:

<script type="text/javascript" src="jquery-1.3.2.min.js"></script>

<script type="text/javascript">
$(function(){
    $('li')
        .css('pointer','default')
        .css('list-style','none');
    $('li:has(ul)')
        .click(function(event){
            if (this == event.target) {
                $(this).css('list-style',
                    (!$(this).children().is(':hidden')) ? 'none' : 'none');
                $(this).children().toggle('slow');
            }
            return false;
        })
        .css({cursor:'pointer', 'list-style':'none'})
        .children().hide();
    $('li:not(:has(ul))').css({cursor:'default', 'list-style':'none'});
});
</script>

</head>

<body>
<fieldset>
    <legend>Collapsable List Demo</legend>
    <ul>
        <li>A - F</li>
        <li>G - M
            <ul>
                <li>George Kent Technology Centre</li>
                <li>Hampshire Park</li>
                <li>George Kent Technology Centre</li>
                <li>Hampshire Park</li>
            </ul>
        </li>
        <li>
            N - R
        </li>
        <li>S - Z</li>
    </ul>
</fieldset>

我的问题是:

有没有办法让这个列表在页面加载而不是点击时展开?我也根本不需要它崩溃;基本上我只需要动画扩展。

感谢您的时间和建议。:)

编辑 想知道我们是否可以做到这一点的相反效果......

4

2 回答 2

1

在 $('li:not(:has(ul))').css({cursor:'default', 'list-style':'none'}); 之后添加这一行

 $('li:has(ul)').click();
于 2011-01-04T04:37:50.493 回答
0

在页面加载后的短时间内,我将使用setTimeoutinside of为列表设置动画:$(document).ready()

var animateList = function() {
    $('li:has(ul)').each(function() {
        $(this).css('list-style', (!$(this).children().is(':hidden')) ? 'none' : 'none');
        $(this).children().toggle('slow');
    })
};

setTimeout(animateList, 500);

您可以根据需要调整时间段。

示例:http: //jsfiddle.net/andrewwhitaker/7wQT5/

于 2011-01-04T04:50:07.283 回答