1

我们正在使用漂亮的照片:

http://www.no-margin-for-errors.com/projects/prettyphoto-jquery-lightbox-clone/ 对于我们的投资组合。这允许我们显示视频、图像或 SWF。当我们显示一个使用方向键的 SWF 游戏时,它与 prettyPhoto 导航冲突。请参阅我们添加的游戏示例:

http://www.letsdesign.co.uk/#!prettyPhoto/0/ 这在 PC 上的 IE 中更糟。但是该游戏可以在 Firefox for Mac 上运行,这是我们希望所有浏览器都具备的状态。

我们想找到一种方法来关闭 PrettyPhoto 的导航(通过使用箭头键),这样它就不会与任何游戏内的控件发生冲突。我们还有其他游戏要添加,但在此问题修复之前我们无法添加它们。有人对此有解决方案吗?提前致谢。

4

4 回答 4

2

在尝试通过将“keyboard_shortcuts”参数设置为 false 来禁用键盘快捷键(包括(左和右))后,我求助于覆盖 changePage 方法并从 changepicturecallback 方法调用该方法。我发现这可以很容易地选择 prettyPhoto 的不同体验,而无需编辑核心文件(我永远不会推荐)。

$("a[rel^='prettyPhoto']").prettyPhoto({
  changepicturecallback: function(){
    $.prettyPhoto.changePage = function(){};
  },
});

看看 prettyPhoto 参数,如果组合得当,它们会非常强大。

于 2013-11-25T14:12:32.670 回答
1

在 Prettyphoto 的 JavaScript 文件中,将 keyboard_shortcuts设置false

于 2012-01-25T18:37:05.960 回答
1

我找到了一种非常老套的方法来禁用箭头键功能。在我的 jquery.prettyPhoto.js 文件中,我刚刚注释掉$.prettyPhoto.changePage('previous');$.prettyPhoto.changePage('next');.

这将意味着箭头导航根本不起作用,但无论如何我的项目都不需要它。

于 2012-11-20T09:19:08.333 回答
0

不幸的是,有一个错误。我已经修改了代码,现在效果很好。

这是错误。有一段代码是这样的:

switch(t.keyCode){case 37:e.prettyPhoto.changePage("previous");t.preventDefault();break;case 39:e.prettyPhoto.changePage("next");t.preventDefault();break;case 27:if(!settings.modal)e.prettyPhoto.close();t.preventDefault();break

将其更改为以下

if (settings.keyboard_shortcuts) { switch(t.keyCode){case 37:e.prettyPhoto.changePage("previous");t.preventDefault();break;case 39:e.prettyPhoto.changePage("next");t.preventDefault();break;case 27:if(!settings.modal)e.prettyPhoto.close();t.preventDefault();break}

现在作者的设置,称为keyboard_shortcuts,如果您将其设置为false,它将很好地工作。

这对缩小代码有效,我没有检查非缩小代码中是否存在错误(如果可用)。

祝你好运!

乔治

于 2014-10-29T12:27:25.563 回答