<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>
    主站蜘蛛池模板: 99在线观看精品免费99| 国产JIZZ中国JIZZ免费看| 69精品免费视频| 日韩亚洲AV无码一区二区不卡| a级毛片免费完整视频| 中国亚洲女人69内射少妇| 久久免费国产精品| 亚洲AV中文无码乱人伦下载| 国产精成人品日日拍夜夜免费| 婷婷亚洲久悠悠色悠在线播放| 99re6在线视频精品免费下载| 亚洲综合视频在线| 久久成人国产精品免费软件| 国产精品亚洲片夜色在线| 国产男女猛烈无遮挡免费网站 | 国产一级在线免费观看| 欧洲亚洲国产清在高| 污污网站免费观看| 亚洲免费视频播放| 国产免费AV片无码永久免费| 日韩免费高清一级毛片| 久久亚洲国产午夜精品理论片| 黄色成人免费网站| 亚洲av成人片在线观看| 久久久精品国产亚洲成人满18免费网站 | 精品国产免费人成网站| 久久精品国产亚洲77777| 啦啦啦手机完整免费高清观看| 日韩精品免费一线在线观看| 亚洲va中文字幕无码久久| 久久天天躁狠狠躁夜夜免费观看| 亚洲另类无码专区首页| 亚洲情XO亚洲色XO无码| 成年人网站免费视频| 极品美女一级毛片免费| 亚洲伊人tv综合网色| 免费在线观看理论片| 2022久久国产精品免费热麻豆| 亚洲av无码一区二区三区天堂| 国产精一品亚洲二区在线播放| 欧洲黑大粗无码免费|