Привет всем Я просто пытаюсь понимает, как это делает его работу У меня есть основной холст базы только в JavaScript, и я хотел бы, чтобы переместить его с помощью сенсорного событияКак перенести объект в холст с помощью события касания?
Я не уверен в этом, но Могу ли я используйте событие перетаскивания?
Нужно ли использовать функцию цикла?
Как я могу запустить этот синий куб?
Я знаю, что есть много JavaScript двигателя на самом деле я использую фазер, но я хотел бы undertand это
Спасибо
var canvas, cx, width, height;
var cube = {
x: 80,
y: 100,
update: function() {
},
draw: function (ctx) {
ctx.save();
ctx.fillStyle = "blue";
ctx.fillRect(100, 410, 50, 50);
ctx.restore();
}
};
function onpress(e) {
e.preventDefault();
var whichArt = e.target;
var touch = e.touches[0];
var moveOffsetX = whichArt.offsetLeft - touch.pageX;
var moveOffsetY = whichArt.offsetTop - touch.pageY;
whichArt.addEventListener('touchmove', function() {
var positionX = touch.pageX + moveOffsetX;
var positionY = touch.pageY + moveOffsetY;
cube.x = positionX;
cube.y = positionY;
console.log(cube.x);
}, false);
}
function main() {
canvas = document.createElement("canvas");
width = window.innerWidth;
height = window.innerHeight;
if (width >= 500) {
width = 320;
height = 480;
canvas.style.border = "1px solid #000";
}
document.addEventListener("touchstart", onpress);
canvas.width = width;
canvas.height = height;
ctx = canvas.getContext("2d");
document.body.appendChild(canvas);
run();
}
function run() {
var loop = function() {
update();
render();
window.requestAnimationFrame(loop, canvas);
}
window.requestAnimationFrame(loop, canvas);
}
function update() {
}
function render() {
cube.draw(ctx);
}
main();
http://jsfiddle.net/marcogomesr/sxbo3r83/
Там нет 'drag' событий в JS. –
Посмотрите на это -> https://developer.mozilla.org/en-US/docs/Web/Events/dragstart –
Вот информация о том, какие браузеры поддерживают это. http://caniuse.com/#feat=dragndrop Кроме того, это не поможет вам в холсте, так как вы перетаскиваете весь элемент холста. –