<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>
    主站蜘蛛池模板: 一二三四在线播放免费观看中文版视频 | 久久亚洲国产成人精品性色 | 国产一级婬片A视频免费观看| 国产一级淫片视频免费看| 亚洲AV无码国产精品永久一区| 18禁超污无遮挡无码免费网站国产| 亚洲乱码在线播放| 国产精品视频免费一区二区 | 九九免费久久这里有精品23| 国产亚洲AV手机在线观看| 国产免费区在线观看十分钟| 亚洲日韩精品无码一区二区三区 | 四虎影视在线影院在线观看免费视频 | 亚洲影视一区二区| 成年轻人网站色免费看 | 国产黄片不卡免费| 西西人体44rt高清亚洲 | 久久精品无码免费不卡| 国产亚洲av片在线观看16女人| 中文字幕免费在线看| 久久精品国产亚洲AV麻豆不卡 | 亚洲色偷偷偷综合网| 免费人成视网站在线观看不卡| 成年网在线观看免费观看网址| 国产精品亚洲A∨天堂不卡| 在线免费观看国产| 亚洲最大中文字幕无码网站| 亚洲VA综合VA国产产VA中| 成人性生交大片免费看中文| 亚洲校园春色小说| 国产成人免费a在线视频色戒| 中文字幕永久免费| 亚洲最大的黄色网| 久久久无码精品亚洲日韩软件| 99爱在线观看免费完整版| 亚洲一本到无码av中文字幕| 亚洲人成影院在线观看| 97在线视频免费公开观看| 亚洲av片在线观看| 久久亚洲精品人成综合网| jjzz亚洲亚洲女人|