打开LightBox的bug

时间:2012-03-28 21:15:12

标签: javascript jquery

您正在为网站开发灯箱时,似乎我在某处创建了我的代码时出错了。如果我点击灯箱两次,它会正常工作,一切都很顺利。但是当我尝试第三次打开它时一个bug似乎干扰了。我已经在jsFiddle上发布了整个网站的代码:

http://jsfiddle.net/Ywpdh/

仅关注右上角的“登录”按钮。单击“登录”按钮时,灯箱会显示,您可以通过单击右上方的矩形来关闭它。只有在单击登录按钮后才会显示错误第三次。在这一点上,小矩形似乎表现得好像它的容器被赋予溢出:隐藏属性不是真的。我在所有现代浏览器上测试了代码我得到了同样的bug。有人请告诉我什么是继续?

1 个答案:

答案 0 :(得分:1)

使用firebug,conatiner确实会溢出:第二次点击退出div时隐藏。

减少代码并注释掉它是导致问题的宽度和高度的动画。

搜索谷歌 jquery aminate导致溢出:隐藏我来到这个SO帖子

jQuery .animate() forces style "overflow:hidden"

所以看来你必须自己重置溢出

更新了您的Fiddle

function lighbox(){
    var width = $(window).width() / 2 - ($('div.lightbox').width() / 2);
    var height = $(window).height()/2 - ($('div.lightbox').height() / 2);
    var body = $('body');
    body.css('overflowY','hidden');
    $('div#bg-lightbox').fadeTo('slow',0.9)
    $('div#lightbox').css({
        'left':width,
        'top':height,
        'overflow': 'visible'     // *** added this line
    }).stop()
        .animate({
            'width':'+=500px',
            'height':'+=250px',
            'left':'-=300px',
            'top':'-=200px',
            'opacity':'1'
        }, 'slow' , 'swing')