Fancybox没有使用jQuery.Animate-Enhanced正确动画

时间:2013-01-17 16:26:05

标签: jquery jquery-plugins fancybox

我正在尝试在我正在使用的这个新网站上使用Fancybox 2.1.3:http://egelect.com/2013/eg-electrique-maitre-electricien.php

问题是Fancybox动画的起源不是屏幕的中心,应该如此。我正在使用Fancybox开箱即用的规格。

我知道这是因为jQuery.Animate-Enhanced.min.js(v0.99),因为当我注释掉这个.js时,Fancybox表现得很正确。

在Chrome,FF和IE9上测试过。

任何人都知道我应该寻找什么?

谢谢!

2 个答案:

答案 0 :(得分:0)

最初打开fancybox时,我遇到了与Fancybox 1.3相同的问题。但是,如果您注意到 - 如果您调整浏览器的大小 - 它将自动居中。

我没有时间找到解决方案,但我确实设法在$ .fancybox.center函数中找到它 - 它在哪里调用animate函数 - 在完成之后,t webkit动画的计算几乎最终否定了fancybox的顶部和左侧位置。如果在动画后检查元素,您将看到这一点。

答案 1 :(得分:0)

我解决了这个问题,添加到重新定位功能(进入jquery.fancybox.js脚本)一个切换,以便在定位fancybox时避免使用CSSTransitions。

我真的不喜欢这个解决方案,但它确实有用。

我的代码:

    reposition: function(e, onlyAbsolute) {
        var current = F.current,
                wrap = current ? current.wrap : null,
                pos;

        if (wrap) {
            pos = F._getPosition(onlyAbsolute);

            if (e && e.type === 'scroll') {
                delete pos.position;

                wrap.stop(true, true).animate(pos, {avoidCSSTransitions:true}, 200);

            } else {
                $.toggleDisabledByDefault();
                wrap.css(pos);
                setTimeout(function(){
                    $.toggleDisabledByDefault();
                },1);
                current.pos = $.extend({}, current.dim, pos);
            }
        }
    },