ホームページ > ウェブフロントエンド > htmlチュートリアル > div と Canvas_html/css_WEB-ITnose の問題

div と Canvas_html/css_WEB-ITnose の問題

WBOY
リリース: 2016-06-21 09:28:33
オリジナル
1292 人が閲覧しました

  <!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>图片上传本地预览</title>     <style type="text/css">#preview{width:260px;height:190px;border:1px solid #000;overflow:hidden;}#imghead {filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);}</style><script type="text/javascript">                //图片上传预览    IE是用了滤镜。        function previewImage(file)        {          var MAXWIDTH  = 260;           var MAXHEIGHT = 180;          var div = document.getElementById('preview');          if (file.files && file.files[0])          {              div.innerHTML ='<img id=imghead>';              var img = document.getElementById('imghead');              img.onload = function(){                var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight);                img.width  =  rect.width;                img.height =  rect.height;//                 img.style.marginLeft = rect.left+'px';                img.style.marginTop = rect.top+'px';              }              var reader = new FileReader();              reader.onload = function(evt){img.src = evt.target.result;}              reader.readAsDataURL(file.files[0]);          }          else //兼容IE          {            var sFilter='filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src="';            file.select();            var src = document.selection.createRange().text;            div.innerHTML = '<img id=imghead>';            var img = document.getElementById('imghead');            img.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = src;            var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight);            status =('rect:'+rect.top+','+rect.left+','+rect.width+','+rect.height);            div.innerHTML = "<div id=divhead style='width:"+rect.width+"px;height:"+rect.height+"px;margin-top:"+rect.top+"px;"+sFilter+src+"\"'></div>";          }        }        function clacImgZoomParam( maxWidth, maxHeight, width, height ){            var param = {top:0, left:0, width:width, height:height};            if( width>maxWidth || height>maxHeight )            {                rateWidth = width / maxWidth;                rateHeight = height / maxHeight;                                if( rateWidth > rateHeight )                {                    param.width =  maxWidth;                    param.height = Math.round(height / rateWidth);                }else                {                    param.width = Math.round(width / rateHeight);                    param.height = maxHeight;                }            }                        param.left = Math.round((maxWidth - param.width) / 2);            param.top = Math.round((maxHeight - param.height) / 2);            return param;        }</script>     </head>     <body><div id="preview">    <img id="imghead" width=100 height=100 border=0 src='<%=request.getContextPath()%>/images/defaul.jpg'></div>             <input type="file" onchange="previewImage(this)" />     </body>     </html>
ログイン後にコピー


これは私がオンラインで見たウェブページから写真をアップロードするためのコードです:



のdivをcanvasに変更すると関数が無効になります。キャンバスに変えることはできないのでしょうか?なぜですか?
変更可能なはずです。


ディスカッションへの返信 (解決策)

あなたのブラウザはそれをサポートしていませんか? IE のバージョンは何ですか?

Canvas は画像をレンダリングするためにdrawImage メソッドを使用する必要があります

タグは単なるグラフィック コンテナであり、グラフィックを描画するにはスクリプトを使用する必要があります。

タグは単なるグラフィック コンテナであり、グラフィックを描画するにはスクリプトを使用する必要があります。



画像をローカルで選択して Web ページに表示することですが、それをキャンバスに変更することは機能しません

キャンバスは必要があります。画像をレンダリングするには、drawImage メソッドを使用してください



はい、コードを投稿していただけますか? ありがとうございます

キャンバスは画像をレンダリングするために、drawImage メソッドを使用する必要があります


ありがとうございます。

リーリー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート