4

我正在开发一个使用 jQuery 实现一些动画的网站。所有这些都很好,我现在已经完成了网站的那部分工作。不过,不知何故,我使用pageslide 插件的菜单已经停止工作。动画仍然有效,但菜单不是从左侧滑入以显示其整个宽度,而是以两倍的宽度滑入。这发生在所有浏览器和设备上,而且绝对不是昨天发生的。

我将在本文末尾发布有问题的代码,但实际上我认为这与我拥有的任何代码无关。我在构建时一直在使用版本控制,这个错误出现在所有版本上,本地和远程。所以一个远程站点,我自从它工作以来就没有碰过它现在不是。

这向我表明,作为站点一部分的文件之一不是问题。但是,我只有 2 个链接到该站点的外部文件。第一个是modernizr,禁用没有区别;第二个是jQuery。我尝试将 jQuery 的版本更改为从 1.10 到 2.0 的所有内容,但仍然没有任何乐趣。

我现在有点没主意了。

下面是控制菜单打开的 pageslide.js:

// Function that controls opening of the pageslide
function _start( direction, speed ) {
    var slideWidth = $pageslide.outerWidth( true ),
        bodyAnimateIn = {},
        slideAnimateIn = {};

    // If the slide is open or opening, just ignore the call
    if( $pageslide.is(':visible') || _sliding ) return;         
    _sliding = true;

    switch( direction ) {
        case 'left':
            $pageslide.css({ left: 'auto', right: '-' + slideWidth + 'px' });
            bodyAnimateIn['margin-left'] = '-=' + slideWidth;
            slideAnimateIn['right'] = '+=' + slideWidth;
            break;
        default:
            $pageslide.css({ left: '-' + slideWidth + 'px', right: 'auto' });
            bodyAnimateIn['margin-left'] = '+=' + slideWidth;
            slideAnimateIn['left'] = '+=' + slideWidth;
            break;
    }

    // Animate the slide, and attach this slide's settings to the element
    $body.animate(bodyAnimateIn, speed);
    $pageslide.show()
              .animate(slideAnimateIn, speed, function() {
                  _sliding = false;
              });
}

非常感谢您的帮助。

4

1 回答 1

2

我已经解决了这个问题,尽管正如我所说,我经历了从 1.0 到 2.0 的各种版本的 jQuery,例如,我没有包括 1.6 和 1.7 之间的微版本。测试 1.6.1 等是我所缺少的,当然也是问题所在。任何有同样问题的人都应该检查所有的子版本。

于 2013-05-30T18:21:20.597 回答