質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

726閲覧

ブラウザチェックすると、IEでは画像の位置がズレてしまいます。

keikeike

総合スコア12

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2020/02/10 00:04

前提・実現したいこと

針の先端に画像を付けて時計のように動かしたいのですが、
ブラウザチェックすると、
IEだと針と画像がズレてしまいます。他のブラウザでは正常なのですが。
原因は何でしょうか?

<img id="aaa" src="aaa.svg" alt="" style="display: none;" > <canvas id="CanvasID" width="730" height="730"> <script type="text/javascript"> let CanvasObj0 = document.getElementById("CanvasID"); let CnvWidth0 = CanvasObj0.width; let CnvHeight0 = CanvasObj0.height; let ctx0 = CanvasObj0.getContext('2d'); window.onload = function (){ let ox, oy, x, y, radius, startAngle, endAngle, direction, degree, radian, orbit; ox0 = CnvWidth0/2; oy0 = CnvHeight0/2; orbit0 = CnvWidth0/2-43; DrawPlanet00(100,"#000000",2,253);//針 DrawPlanet7(ctx0,ox0,oy0,orbit0,100,"aaa"); } function defDrawImage(idImg,x,y){ console.log("DrawImage()"); this.img = document.getElementById(idImg); this.x = x; this.y = y; this.onDrawImage = function(){ console.log("onDrawImage()"); console.log(this.img.src); console.log(this.x); console.log(this.y); let imgw, imgh; imgw = this.img.naturalWidth; imgh = this.img.naturalHeight; ctx0.drawImage(this.img, this.x-imgw/2, this.y-imgh/2); } this.img.onload = this.onDrawImage(); console.log(this.img.src); } /*---- 関数|(針)を描画 ----*/ function DrawPlanet00( degree, color , a , b){ let radian = Math.PI * degree / 180; let direction = true; // 時計回り ctx0.translate( ox0, oy0 ); ctx0.rotate( radian ); ctx0.fillStyle = color; ctx0.fillRect( 0, -orbit0, a, b ); ctx0.setTransform( 1, 0, 0, 1, 0, 0 ); } function DrawPlanet7(ctx,ox,oy,orbit,degree,idImg){ let x, y, startAngle, endAngle, direction, radian; ctx0.beginPath(); radian = degree/360*Math.PI*2; x = ox+Math.sin(radian)*orbit; y = oy-Math.cos(radian)*orbit; if(idImg==""){ startAngle = 0; endAngle = Math.PI*2; direction = true; // 時計回り ctx0.arc(x, y, radius, startAngle, endAngle, direction); ctx0.closePath(); }else{ let ddi = new defDrawImage(idImg, x, y); } } </script> </canvas>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/02/10 00:21

コードはマークダウンのcode機能を利用してご提示ください。 また想定しているIEのバージョンは何でしょうか
guest

回答1

0

aaa.svgがおかしいかIEにあっていないのでは?
普通の画像で試したところとくに問題は感じませんでした

投稿2020/02/10 00:14

yambejp

総合スコア114843

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

keikeike

2020/02/11 01:17

gifに変えたら成功しました。とりあえずgifでいきます。 助かりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問