-1

所以,这个小提琴: http: //jsfiddle.net/aXsWz/31/实际上是按照我想要的方式工作的。但是,这不是我的实际代码发生的情况(尚无法让 Fiddle 复制该问题)。但是,希望我能彻底解释它以获得帮助。它适用于 Firefox 和 IE,但不适用于 Chrome。

   $(document).ready(function() {

$('div#navNavigate').click(function(){
        $('div#navNavigateHide').show()
        $('div#navNavigate').hide()
        $('div#sideNav').show()
        $('div#container').animate({'left':'+=120'});
    });  

$('div#navNavigateHide').click(function(){
        $('div#navNavigate').show()
        $('div#navNavigateHide').hide()
        $('div#container').animate({'left':'-=120'});
    });
});  

而不是刚刚移动的“容器” div,它首先向左跳到一个新的起始位置,然后按指定的距离进行动画处理。另外,我想注意跳跃的距离比指定的动画距离更大(即我的容器几乎跳出屏幕,然后动画回到部分视图。如果它跳跃的距离相等,它会动画回到原来的位置)。

当我可以复制它时,我会发布更多代码/更新的小提琴,但如果有人能在此之前提供帮助,我将不胜感激。谢谢!

编辑*因此,当放入常规文件并在 Chrome 中查看时,小提琴不起作用。不幸的是,没有办法使用 jsfiddle 复制它。但是,任何愿意帮助并希望看到问题的人,只需将小提琴复制粘贴到三个文件中并打开 html。您将看到问题的实际效果。

编辑*我只是在想......如果它只是发生在我的电脑上,那么也许是我的 jQuery?我目前下载了 1.7.1。所以也许我会去抢最新版本。也许这会奏效...

编辑*已修复!这是 jQuery 版本。现在可以走了。

4

3 回答 3

2

我修好了它!好吧,我下载了最新版本的 jQuery,现在它可以工作了。简单的修复。最后!

于 2012-11-01T04:52:07.033 回答
-1

尝试更换

  $('div#container').animate({'left':'+=120'});

   $('div#container').animate({'left':'-=120'});

  $('div#container').stop().animate({'left':'+=120'});

  $('div#container').stop().animate({'left':'-=120'});
于 2012-11-01T04:04:44.243 回答
-1

看起来您可以将您的功能整合为一个。有时这可以帮助解决时序/排序问题。

试试这个:

var hidden = true;
$('div#navNavigate').click(function(){
if (hidden) {    
    $('div#container').animate({'left':'+=120'});
} else {
    $('div#container').animate({'left':'-=120'});
}
    hidden = !hidden;
});  

小提琴 ​</p>

于 2012-11-01T04:49:56.703 回答