在ie8中使用 jq的load()无反应

$("<img/>").attr("src", path).load(function(){
    console.log('点击888888');
    alert('!!!!!!!!!!!!!!!!!!!!!!!!!!')
    var windowW = $(window).width();        //获取当前窗口宽度
    var windowH = $(window).height();       //获取当前窗口高度
    var realWidth = this.width;     //获取图片真实宽度
    var realHeight = this.height;       //获取图片真实高度
    var imgWidth, imgHeight;
    var scale = 0.8;        //缩放尺寸,当图片真实宽度和高度大于窗口宽度和高度时进行缩放

    if(realHeight > windowH * scale) {  //判断图片高度
        console.log('点击999999');
        imgHeight = windowH * scale;  //如大于窗口高度,图片高度进行缩放
        imgWidth = imgHeight / realHeight * realWidth;  //等比例缩放宽度
        if(imgWidth > windowW * scale) {    //如宽度扔大于窗口宽度
            imgWidth = windowW * scale;   //再对宽度进行缩放
        }
    } else if(realWidth > windowW * scale) {    //如图片高度合适,判断图片宽度
        imgWidth = windowW * scale;       //如大于窗口宽度,图片宽度进行缩放
        imgHeight = imgWidth / realWidth * realHeight;  //等比例缩放高度
    } else {    //如果图片真实高度和宽度都符合要求,高宽不变
        imgWidth = realWidth;
        imgHeight = realHeight;
    }
    $(bigimg).css("width",imgWidth);    //以最终的宽度对图片缩放
    var w = (windowW-imgWidth)/2;   //计算图片与窗口左边距
    var h = (windowH-imgHeight)/2;  //计算图片与窗口上边距
    $(innerdiv).css({"top":h, "left":w});   //设置#innerdiv的top和left属性
    $(outerdiv).fadeIn("fast"); //淡入显示#outerdiv及.pimg
});
阅读 2.4k
1 个回答

可以使用load()方法,但是path再ie8中不能写为动态

if(/(MSIE 8.0)|(MSIE 7.0)/ig.test(ua)){
    $("<img/>").attr("src",pathShow);    // pathShow为图片路径,load()方法在ie8及以下不能为动态地址
    $("<img/>").css("width");
    if( $("<img/>") ){
        $('#innerdiv').css({
            'height':'100%',
            'width':'100%',
            'background':'#000000',
            'opacity':'0.3'
        });
        $(outerdiv).fadeIn("fast");     //淡入显示#outerdiv及.pimg
    }
}

即可

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题