はい!
キャンバスに「保持モード」要素を許可するキャンバスライブラリはかなりあります。
「保持モード」を使用すると、キャンバス上 の各 画像/要素に対して、移動、拡大縮小、回転、傾斜、アニメーション、ドラッグ/ドロップ、ヒットテストなどの機能を実行できます。
私が保証できる人気のある3つのライブラリは、FabricJS、KineticJS、EaselJsです(他にも優れたライブラリがあります。誰も除外しないでください!)
これは、KineticJSを使用したフィドルで、キャンバス上にドラッグ可能な画像を表示します。---
http://jsfiddle.net/m1erickson/bJuLe/
そしてここにいくつかのコードがあります:
<!DOCTYPE HTML>
<html>
<head>
<style>
body {
margin: 0px;
padding: 0px;
}
p{font-size:25px;}
</style>
</head>
<body>
<p>Darth Vader is a "retained" image -- try dragging him around !</p>
<div id="container"></div>
<script src="http://www.html5canvastutorials.com/libraries/kinetic-v4.3.1-beta2.js"></script>
<script>
function drawImage(imageObj) {
var stage = new Kinetic.Stage({
container: "container",
width: 500,
height: 400
});
var layer = new Kinetic.Layer();
// darth vader
var darthVaderImg = new Kinetic.Image({
image: imageObj,
x: stage.getWidth() / 2 - 200 / 2,
y: stage.getHeight() / 2 - 137 / 2,
width: 200,
height: 137,
draggable: true
});
// add cursor styling
darthVaderImg.on('mouseover', function() {
document.body.style.cursor = 'pointer';
});
darthVaderImg.on('mouseout', function() {
document.body.style.cursor = 'default';
});
layer.add(darthVaderImg);
stage.add(layer);
}
var imageObj = new Image();
imageObj.onload = function() {
drawImage(this);
};
imageObj.src = 'http://www.html5canvastutorials.com/demos/assets/darth-vader.jpg';
</script>
</body>
</html>