2

我是网页设计的新手,真的需要一些关于课堂项目的帮助。我有一个滑动导航,我正在使用来自 http://tympanus.net/codrops/2010/07/16/slide-down-box-menu/的以下 Javascript

<!-- The JavaScript -->
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript" src="js/jquery.easing.1.3.js"></script>
    <script type="text/javascript">
        $(function() {
            /**
            * for each menu element, on mouseenter, 
            * we enlarge the image, and show both sdt_active span and 
            * sdt_wrap span. If the element has a sub menu (sdt_box),
            * then we slide it - if the element is the last one in the menu
            * we slide it to the left, otherwise to the right
            */
            $('#sdt_menu > li').bind('mouseenter',function(){
                var $elem = $(this);
                $elem.find('img')
                     .stop(true)
                     .animate({
                        'width':'170px',
                        'height':'170px',
                        'left':'0px'
                     },400,'easeOutBack')
                     .andSelf()
                     .find('.sdt_wrap')
                     .stop(true)
                     .animate({'top':'140px'},500,'easeOutBack')
                     .andSelf()
                     .find('.sdt_active')
                     .stop(true)
                     .animate({'height':'170px'},300,function(){
                    var $sub_menu = $elem.find('.sdt_box');
                    if($sub_menu.length){
                        var left = '170px';
                        if($elem.parent().children().length == $elem.index()+1)
                            left = '-170px';
                        $sub_menu.show().animate({'left':left},200);
                    }   
                });
            }).bind('mouseleave',function(){
                var $elem = $(this);
                var $sub_menu = $elem.find('.sdt_box');
                if($sub_menu.length)
                    $sub_menu.hide().css('left','0px');

                $elem.find('.sdt_active')
                     .stop(true)
                     .animate({'height':'0px'},300)
                     .andSelf().find('img')
                     .stop(true)
                     .animate({
                        'width':'0px',
                        'height':'0px',
                        'left':'85px'},400)
                     .andSelf()
                     .find('.sdt_wrap')
                     .stop(true)
                     .animate({'top':'25px'},500);
            });
        });
    </script>

当我尝试在页面上放置幻灯片时,导航停止工作。我已经尝试了几个幻灯片,但它们都存在某种类型的冲突。我正在尝试使用的来自http://www.jacklmoore.com/monte

谢谢你的帮助。

4

1 回答 1

0

您一次调用动画和停止多次。有两种方法可以解决这个问题,或者构建一个队列系统(jQuery 确实有一个),或者使用提供的回调(一个在函数完成它的工作之后运行的函数)。

需要明确的是,像这样的代码都是一次运行的:

a.animate1()
b.animate2() //animate2 doesn't wait for animate 1, thus, use of callbacks and/or queues.

作为旁注,看看你是否可以通过使用函数来减少你使用大量剪切+粘贴的代码部分。祝项目顺利!

于 2012-11-17T21:04:46.270 回答