我们正在使用prettyPhoto:
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的导航(通过使用箭头键),因此它不会与任何游戏内控件发生冲突。我们还有其他游戏要添加,但在修复之前我们无法添加它们。有人有解决方案吗? 提前谢谢。
答案 0 :(得分:2)
尝试通过将“keyboard_shortcuts”参数设置为false来禁用包括(左和右)键盘快捷键后,我尝试覆盖changePage方法并从changepicturecallback方法调用该方法。我发现这样可以轻松选择prettyPhoto的不同体验,而无需编辑核心文件(我绝不会推荐)。
$("a[rel^='prettyPhoto']").prettyPhoto({
changepicturecallback: function(){
$.prettyPhoto.changePage = function(){};
},
});
看看prettyPhoto params,它们在正确组合时非常强大。
答案 1 :(得分:1)
在Prettyphoto的JavaScript文件中,将 keyboard_shortcuts 设置为 false
答案 2 :(得分:1)
我发现了一种禁用箭头键功能的非常黑客的方法。在我的jquery.prettyPhoto.js文件中,我刚评论了$.prettyPhoto.changePage('previous');
和$.prettyPhoto.changePage('next');
。
这意味着箭头导航根本不起作用,但无论如何我都不需要它。
答案 3 :(得分: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,将会很有效。
这对缩小的代码有效,我没有检查非缩小代码中是否存在错误(如果可用)。
祝你好运!乔治