javascript超初心者です。
canvas上でimage1.pngをドラッグして移動させるために、次のようなコードを書きました。
window.addEventListener("load", function() {
var canvas = document.getElementById("dCanvas");
var ctx=canvas.getContext("2d");
var image = new Image();
image.src="./images/image1.png";
var imageDrag = false;
var imageObject = {
x:0,
y:0,
width:100,
height:50,
};
image.onload = function () {
ctx.drawImage(image,imageObject.x, imageObject.y);
}
canvas.addEventListener("mousemove", function(e){
//マウスの移動
var x = e.clientX;
var y = e.clientY;
if (imageDrag) {
ctx.clearRect(0,0,800,400);
ctx.drawImage(image, imageObject.x + x - startX, imageObject.y + y - startY);
}
});
canvas.addEventListener("mouseup",function(e){
if(imageDrag){
//ドラッグを終えたときのマウスの座標
var x = e.clientX;
var y = e.clientY;
imageObject.x += x-startX;
imageObject.y += y-startY;
imageDrag = false;
}
});
canvas.addEventListener("mousedown",function(e){
var x = e.clientX;
var y = e.clientY;
if(x > imageObject.x && x < imageObject.x+imageObject.width && y > imageObject.y && y < imageObject.y+imageObject.height){
imageDrag = true;
//ドラッグを始めたときのマウスの座標
startX = x;
startY = y;
}
});
canvas.addEventListener("mouseleave",function(){
imageDrag = false;
});
var startX = -1;
var startY = -1;
}, true);
パソコンでは作動したのですが、タブレット(Galaxy tab)上の
Firefoxではタッチ動作で動きません。
パソコン、タブレット両対応にするには、どうすればよいでしょうか。
よろしくご教授下さい。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
早々にご回答下さりありがとうございました。
mousedownの代わりにtouchstart,mousemoveの代わりにtouchmove,mouseupの代わりにtouchendと入力してみたのですがやはりだめでした。ソースをどのように変えればよいのか教えていただけるととてもありがたいです。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#OpenCv V4にのエラーに関する...
-
javaScript textareaの一行あた...
-
なぜmatchメソッドがエラーにな...
-
google apps scriptの終了のさせ方
-
C#で、ContextMenuStripに動的...
-
【javascript】正規表現で括弧...
-
シンプルなweb版スタンプラリー...
-
ASP.NET MVCでObjectをjsに渡す
-
条件に応じて座席表をつくりた...
-
Flashを使わず動きのあるかっこ...
-
第3日曜日のみの日付を取得、...
-
リンクの有無を判別して画像の...
-
gas スプレッドシートがアクテ...
-
GASでundefinedエラーが出ます
-
ASP.NETのコントロールの値をJa...
-
OK Webの新規質問時のプルダウン
-
VSCODE[Python]の設定について
-
文字列の中の特定の文字を変換...
-
C# 演算 奇数と偶数 表現の仕方
-
JavaScriptで文字列の特定文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C#OpenCv V4にのエラーに関する...
-
食材の期限を管理するためにGAS...
-
google apps scriptの終了のさせ方
-
このプログラムに、王手をかけ...
-
このプログラムに王様の逃げ道...
-
この将棋プログラムに王様ゲッ...
-
ASP.NETのコントロールの値をJa...
-
ジェネレーターの作り方
-
GASでundefinedエラーが出ます
-
なぜmatchメソッドがエラーにな...
-
ASP.NET MVCでObjectをjsに渡す
-
C#で、ContextMenuStripに動的...
-
html javascript リンク先アド...
-
HTMLで作った時報アプリが動き...
-
翌月を取得するGASが分かりません
-
イラレでナンバリングする方法
-
HTMLにWSHを組み込む
-
gas スプレッドシートがアクテ...
-
getElementByIdでASP.NETのText...
-
APIを使って埋め込んだグーグル...
おすすめ情報