<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 0, comments - 77, trackbacks - 0, articles - 356
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    兼容IE8、火狐的本地圖片預覽+等比例縮放

    Posted on 2011-06-16 18:13 semovy 閱讀(687) 評論(0)  編輯  收藏 所屬分類: JavaScriptCSS式樣
    轉自http://it.oyksoft.com/post/974/


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">    
    <html xmlns="http://www.w3.org/1999/xhtml">    
    <head>    
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    
    <title>Firefox3,IE6,IE7,IE8上傳圖片預覽</title>    
    <style type="text/css">    
    #preview_wrapper{     
        display:inline-block;     
        width:300px;     
        height:300px;     
        background-color:#CCC;     
    }     
    #preview_fake{ /* 該對象用戶在IE下顯示預覽圖片 */     
        filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);     
    }     
    #preview_size_fake{ /* 該對象只用來在IE下獲得圖片的原始尺寸,無其它用途 */     
        filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);       
        visibility:hidden;     
    }     
    #preview{ /* 該對象用戶在FF下顯示預覽圖片 */     
        width:300px;     
        height:300px;     
    }     
    </style>    
        
    <script type="text/javascript">    
    function onUploadImgChange(sender){     
        if( !sender.value.match( /.jpg|.gif|.png|.bmp/i ) ){     
            alert('圖片格式無效!');     
            return false;     
        }     
             
        var objPreview = document.getElementById( 'preview' );     
        var objPreviewFake = document.getElementById( 'preview_fake' );     
        var objPreviewSizeFake = document.getElementById( 'preview_size_fake' );     
             
        if( sender.files &&  sender.files[0] ){     
            objPreview.style.display = 'block';     
            objPreview.style.width = 'auto';     
            objPreview.style.height = 'auto';     
                 
            // Firefox 因安全性問題已無法直接通過 input[file].value 獲取完整的文件路徑     
            objPreview.src = sender.files[0].getAsDataURL();         
        }else if( objPreviewFake.filters ){      
            // IE7,IE8 在設置本地圖片地址為 img.src 時出現莫名其妙的后果     
            //(相同環境有時能顯示,有時不顯示),因此只能用濾鏡來解決     
                 
            // IE7, IE8因安全性問題已無法直接通過 input[file].value 獲取完整的文件路徑     
            sender.select();     
            var imgSrc = document.selection.createRange().text;     
                 
            objPreviewFake.filters.item(     
                'DXImageTransform.Microsoft.AlphaImageLoader').src = imgSrc;     
            objPreviewSizeFake.filters.item(     
                'DXImageTransform.Microsoft.AlphaImageLoader').src = imgSrc;     
                 
            autoSizePreview( objPreviewFake,      
                objPreviewSizeFake.offsetWidth, objPreviewSizeFake.offsetHeight );     
            objPreview.style.display = 'none';     
        }     
    }     
        
    function onPreviewLoad(sender){     
        autoSizePreview( sender, sender.offsetWidth, sender.offsetHeight );     
    }     
        
    function autoSizePreview( objPre, originalWidth, originalHeight ){     
        var zoomParam = clacImgZoomParam( 300, 300, originalWidth, originalHeight );     
        objPre.style.width = zoomParam.width + 'px';     
        objPre.style.height = zoomParam.height + 'px';     
        objPre.style.marginTop = zoomParam.top + 'px';     
        objPre.style.marginLeft = zoomParam.left + 'px';     
    }     
        
    function clacImgZoomParam( maxWidth, maxHeight, width, height ){     
        var param = { width:width, height:height, top:0, left:0 };     
             
        if( width>maxWidth || height>maxHeight ){     
            rateWidth = width / maxWidth;     
            rateHeight = height / maxHeight;     
                 
            if( rateWidth > rateHeight ){     
                param.width =  maxWidth;     
                param.height = height / rateWidth;     
            }else{     
                param.width = width / rateHeight;     
                param.height = maxHeight;     
            }     
        }     
             
        param.left = (maxWidth - param.width) / 2;     
        param.top = (maxHeight - param.height) / 2;     
             
        return param;     
    }     
    </script>    
        
    </head>    
        
    <body>    
        <div id="preview_wrapper">    
            <div id="preview_fake">    
                <img id="preview" onload="onPreviewLoad(this)"/>    
            </div>    
        </div>    
        <br/>    
        <input id="upload_img" type="file" onchange="onUploadImgChange(this)"/>    
        <br/>    
        <img id="preview_size_fake"/>    
    </body>    
    </html>
    主站蜘蛛池模板: 亚洲国产亚洲综合在线尤物| 国产综合亚洲专区在线| 亚洲黄色免费电影| 无码少妇精品一区二区免费动态| 国产亚洲人成网站在线观看| 久久久久久精品免费看SSS | 亚洲乱码在线观看| 成人网站免费观看| 亚洲精品理论电影在线观看| 热99re久久免费视精品频软件| 亚洲码欧美码一区二区三区| 日美韩电影免费看| www在线观看播放免费视频日本| 亚洲成片观看四虎永久| 一区二区三区免费电影| 亚洲综合国产一区二区三区| 成全动漫视频在线观看免费高清版下载 | 18级成人毛片免费观看| 亚洲精品国产成人中文| 国产免费不卡v片在线观看| 亚洲国产欧美日韩精品一区二区三区 | 好湿好大好紧好爽免费视频 | 中文字幕亚洲一区| 久久亚洲免费视频| 亚洲影视自拍揄拍愉拍| 国产精品久久免费视频| 久99久无码精品视频免费播放| 久久久久久久久亚洲| 国产精品69白浆在线观看免费| 色偷偷噜噜噜亚洲男人| 亚洲免费观看视频| 无码人妻久久一区二区三区免费丨| 亚洲av成人一区二区三区在线播放 | 亚洲男女性高爱潮网站| 国产免费无遮挡精品视频| a级毛片黄免费a级毛片| 久久亚洲最大成人网4438| 又爽又黄无遮挡高清免费视频| 免费观看一区二区三区| 亚洲乱码中文字幕在线| 亚洲αv在线精品糸列|