10

我在页面上使用了 fancybox,但我将它用作更多的设计功能,而不是 jQuery 模态。我试图阻止用户关闭它(因为它会“破坏”页面的设计)。我已经设法阻止用户点击fancybox,但是当按下Esc 键时我无法阻止它关闭。我已经尝试过'closeOnEscape': false,但这似乎不起作用。下面是我的代码。关于我做错了什么或我需要做什么的任何建议?

$(document).ready(function () {
    $.fancybox({
        'width': '340px',
        'height': '100%',
        'autoScale': true,
        'transitionIn': 'none',
        'transitionOut': 'none',
        'type': 'iframe',
        'href': 'form.php',
        'hideOnContentClick': false,
        'closeBtn' : false,
        'helpers' : { 
            'overlay' : {
                'closeClick': false,
            }
        }
    });
});
4

3 回答 3

16

检查keys来自fancyBox docs的选项:


定义用于画廊导航、关闭和幻灯片
对象的键盘键;默认值:

{
    next : {
        13 : 'left', // enter
        34 : 'up',   // page down
        39 : 'left', // right arrow
        40 : 'up'    // down arrow
    },
    prev : {
        8  : 'right',  // backspace
        33 : 'down',   // page up
        37 : 'right',  // left arrow
        38 : 'down'    // up arrow
    },
    close  : [27], // escape key
    play   : [32], // space - start/stop slideshow
    toggle : [70]  // letter "f" - toggle fullscreen
}

只需将close值映射到null.


如果您使用的是 fancyBox2,请将此属性添加到您的代码中:

$.fancybox({
  // all your other options here
  ...,
  keys : {
    close  : null
  }
}
于 2013-01-04T13:45:48.487 回答
2

@moonwave99 有 fancybox2 的正确答案。如果您使用的是 v1.3+,那么您必须使用:

enableEscapeButton: false

参考: http: //fancybox.net/api

于 2013-01-04T13:52:32.463 回答
1

正如其他人在评论中提到的那样,modal: true完美地工作......

$.fancybox({
    modal: true
});

文档...

modal - 如果设置为 true,将禁用导航和关闭。

于 2016-04-20T07:03:11.213 回答