我正在开发一个网站,该网站有一些使用 jQuery 实现的动画。所有这些都很好,我现在已经完成了网站这一部分的工作。但不知何故,我的菜单使用 pageslide plugin已停止按应有的方式工作。动画仍然有效,但菜单不是从左侧滑入以显示其整个宽度,而是以两倍的宽度滑入。所有浏览器和设备上都会发生这种情况,而且昨天绝对不会发生。
我将在本文末尾发布有问题的代码,但实际上我认为这与我拥有的任何代码都没有任何关系。我在构建时一直使用版本控制,这个错误已经出现在所有版本上,本地和远程。所以一个远程站点,自从它工作以来我就没有接触过,现在却不再工作了。
这对我来说表明网站中的某个文件不是问题。但是,我只有 2 个外部文件链接到该网站。第一个是现代化,禁用它没有什么区别;第二个是 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;
});
}
非常感谢您的帮助。
最佳答案
我已经解决了这个问题,尽管正如我所说,我经历了从 1.0 到 2.0 的各个版本的 jQuery,但我没有包括 1.6 和 1.7 之间的微版本。测试 1.6.1 等是我所缺少的,当然也是问题所在。任何其他遇到同样问题的人都应该检查所有子版本。
关于jQuery bug 突然出现在所有版本的网站上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16771510/