Я использую холст в своем приложении с использованием JavaScript. На этом холсте я рисую один прямоугольник. Я хочу перемещать прямоугольник с помощью мыши (например, движущегося слайдера), как перемещать этот прямоугольник с помощью JavaScript или J-запроса.Как перемещать прямоугольник на холсте
2
A
ответ
6
брезентовой буквально только поверхность, что вы рисуете, и ни одна из вещей, которые вы рисуете не являются объектами.
Если вы хотите притвориться, что это объекты (например, перемещение по прямоугольнику или линии), вам необходимо отслеживать все и выполнять все тесты и повторное рисование.
Я написал gentle introduction article, начав с создания прямоугольников, которые вы можете выбрать и перетащить. Дайте это прочитать.
7
На втором чтении, я думаю, что я неправильно понял ваш вопрос, так вот обновленная версия:
$(function() {
var
$canvas = $('#canvas'),
ctx = $canvas[0].getContext('2d'),
offset = $canvas.offset(),
draw,
handle;
handle = {
color: '#666',
dim: { w: 20, h: canvas.height },
pos: { x: 0, y: 0 }
};
$canvas.on({
'mousedown.slider': function (evt) {
var grabOffset = {
x: evt.pageX - offset.left - handle.pos.x,
y: evt.pageY - offset.top - handle.pos.y
};
// simple hit test
if ( grabOffset.x >= 0
&& grabOffset.x <= handle.dim.w
&& grabOffset.y >= 0
&& grabOffset.x <= handle.dim.h
) {
$(document).on({
'mousemove.slider': function (evt) {
handle.pos.x = evt.pageX - offset.left - grabOffset.x;
// prevent dragging out of canvas
if (handle.pos.x < 0) {
handle.pos.x = 0;
}
if (handle.pos.x + handle.dim.w > canvas.width) {
handle.pos.x = canvas.width - handle.dim.w;
}
//handle.pos.y = evt.pageY - offset.top - grabOffset.y;
},
'mouseup.slider': function() {
$(document).off('.slider');
}
});
}
}
});
draw = function() {
var val = (100 * (handle.pos.x/(canvas.width - handle.dim.w))).toFixed(2) + '%';
ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);
ctx.fillStyle = handle.color;
ctx.fillRect(handle.pos.x, handle.pos.y, handle.dim.w, handle.dim.h);
ctx.textBaseline = 'hanging';
ctx.font = '12px Verdana';
ctx.fillStyle = '#333';
ctx.fillText(val, 4, 4);
ctx.fillStyle = '#fff';
ctx.fillText(val, 3, 3);
};
setInterval(draw, 16);
});
предыдущая версия:
Очень простое решение распространяются на:
$(function() {
var
ctx = $('#canvas')[0].getContext('2d'),
$pos = $('#pos'),
draw;
draw = function() {
var x = ($pos.val()/100) * (ctx.canvas.width - 20);
ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);
ctx.fillStyle = 'black';
ctx.fillRect(x, 0, 20, 20);
};
setInterval(draw, 40);
});
Смежные вопросы
- 1. Как перемещать изображение на холсте?
- 2. Как перемещать фигуру на холсте в WPF?
- 3. Как перемещать изображение на холсте?
- 4. Как перемещать круг на холсте?
- 5. Как перемещать овал на холсте
- 6. Создать случайный прямоугольник на холсте
- 7. Невозможно нарисовать прямоугольник на холсте
- 8. Как нарисовать прямоугольник на холсте WPF
- 9. Как нарисовать округленный прямоугольник на холсте HTML?
- 10. Как перемещать элементы вокруг на холсте
- 11. Как перемещать текст на холсте горизонтально прямой?
- 12. Перевести прямоугольник в холсте
- 13. Свободный прямоугольник трансформирования на холсте JavaScript
- 14. Android camera2.params.face прямоугольник размещения на холсте
- 15. Прямоугольник следовать пальцем на холсте в Scrollview
- 16. Как нарисовать прямоугольник на холсте, как мы делаем на краске?
- 17. Показать прямоугольник на холсте при перемещении мыши
- 18. Прямоугольник не будет нарисован на холсте
- 19. Как перемещать прямоугольник с помощью мыши
- 20. Как сделать прямоугольник в холсте html5 анимированный
- 21. Как распознать щелчок на нарисованный прямоугольник на холсте
- 22. Как очистить прямоугольник от изображения в холсте
- 23. Как перемещать графику. Прямоугольник с моими ключами?
- 24. Переместить несколько элементов на холсте, а также очистить прямоугольник
- 25. Как рисовать выбор резиновой ленты Прямоугольник точно на вращающемся холсте?
- 26. Как сделать прямоугольник на холсте, который можно перетаскивать?
- 27. Как нарисовать частичный круглый прямоугольник на андроидном холсте?
- 28. Как показать прямоугольник на холсте WPF из c резкого файла
- 29. Как перемещать форму волны на холсте по оси x
- 30. Как перемещать один объект на холсте (PACMAN) при нажатии клавиши
благодаря всей моей проблеме – pravin