0

我在这里有一个很奇怪的问题 - 我正在使用 jquery 来调整我的背景图像的大小(png,宽度:1793,高度:1200,大小:872kb)。

我的功能在这里:

bgInit = function(img, clbk) {
var bgObj = $('#bgImg');
var bgHeight = bgWidth = 0;
    bgObj.attr('src',img).ready(function(){
    var bgRatio = bgObj.height()/bgObj.width();
        if (bgHeight < screen.height) {
        bgHeight = screen.height;
        bgWidth = bgHeight/bgRatio;
        }
        if (bgWidth < screen.width) {
        bgWidth = screen.width;
        bgHeight = bgWidth*bgRatio;
        }
    //resize and center horizontally
    bgObj.height(bgHeight).width(bgWidth).css('margin-left',(screen.width-bgWidth)/-2);
    clbk();
    });
}

这就是我所说的:

bgInit('img/bg.png', function(){
alert('done!');
});

函数在所有浏览器中都可以正常工作,但问题是在调整大小后使用淡入淡出效果。这真的很慢 - Opera 没有问题,但我想说的是 IE 中的 2fps。

有没有更好的方法来进行这种调整大小(保持纵横比至关重要)?

提前致谢,

米克

4

1 回答 1

1

Internet Explorer JavaScript 引擎独立于浏览器核心,与其他现代浏览器相比运行速度非常慢。由于 Javascript 是动态调整大小的唯一方法,因此您对 IE 不走运。我自己的网站也遇到了同样的问题。而且我的脚本不是基于 jQuery,它是高度优化的。

您可以做的是使用谷歌插件将 IE javascript 引擎加速 10 倍左右,您可以在您的网站中包含一个简单的脚本,如果他们愿意,可以帮助客户安装它 - http://code.google.com/镀铬/镀铬框架/

在此处查看网络开发资源 - http://www.chromium.org/developers/how-tos/chrome-frame-getting-started

查看最近的一些性能测试结果以了解我在说什么: http: //www.legitreviews.com/article/1347/1/

于 2010-10-02T22:25:31.227 回答