Я хочу нарисовать линию в браузере в соответствии с движением мыши? Как я могу достичь этого результата?Как рисовать линию в браузере в соответствии с движением мыши?
ответ
Если вы хотите использовать <canvas>
, вы можете сделать что-то вроде JsFiddle.
<html>
<script type="text/javascript">
var canvas, ctx, flag = false,
prevX = 0,
currX = 0,
prevY = 0,
currY = 0,
dot_flag = false;
var x = "black",
y = 2;
function init() {
canvas = document.getElementById('can');
ctx = canvas.getContext("2d");
w = canvas.width;
h = canvas.height;
canvas.addEventListener("mousemove", function (e) {
findxy('move', e)
}, false);
canvas.addEventListener("mousedown", function (e) {
findxy('down', e)
}, false);
canvas.addEventListener("mouseup", function (e) {
findxy('up', e)
}, false);
canvas.addEventListener("mouseout", function (e) {
findxy('out', e)
}, false);
}
function color(obj) {
switch (obj.id) {
case "green":
x = "green";
break;
case "blue":
x = "blue";
break;
case "red":
x = "red";
break;
case "yellow":
x = "yellow";
break;
case "orange":
x = "orange";
break;
case "black":
x = "black";
break;
case "white":
x = "white";
break;
}
if (x == "white") y = 14;
else y = 2;
}
function draw() {
ctx.beginPath();
ctx.moveTo(prevX, prevY);
ctx.lineTo(currX, currY);
ctx.strokeStyle = x;
ctx.lineWidth = y;
ctx.stroke();
ctx.closePath();
}
function erase() {
var m = confirm("Want to clear");
if (m) {
ctx.clearRect(0, 0, w, h);
document.getElementById("canvasimg").style.display = "none";
}
}
function save() {
document.getElementById("canvasimg").style.border = "2px solid";
var dataURL = canvas.toDataURL();
document.getElementById("canvasimg").src = dataURL;
document.getElementById("canvasimg").style.display = "inline";
}
function findxy(res, e) {
if (res == 'down') {
prevX = currX;
prevY = currY;
currX = e.clientX - canvas.offsetLeft;
currY = e.clientY - canvas.offsetTop;
flag = true;
dot_flag = true;
if (dot_flag) {
ctx.beginPath();
ctx.fillStyle = x;
ctx.fillRect(currX, currY, 2, 2);
ctx.closePath();
dot_flag = false;
}
}
if (res == 'up' || res == "out") {
flag = false;
}
if (res == 'move') {
if (flag) {
prevX = currX;
prevY = currY;
currX = e.clientX - canvas.offsetLeft;
currY = e.clientY - canvas.offsetTop;
draw();
}
}
}
</script>
<body onload="init()">
<canvas id="can" width="400" height="400" style="position:absolute;top:10%;left:10%;border:2px solid;"></canvas>
<div style="position:absolute;top:12%;left:43%;">Choose Color</div>
<div style="position:absolute;top:15%;left:45%;width:10px;height:10px;background:green;" id="green" onclick="color(this)"></div>
<div style="position:absolute;top:15%;left:46%;width:10px;height:10px;background:blue;" id="blue" onclick="color(this)"></div>
<div style="position:absolute;top:15%;left:47%;width:10px;height:10px;background:red;" id="red" onclick="color(this)"></div>
<div style="position:absolute;top:17%;left:45%;width:10px;height:10px;background:yellow;" id="yellow" onclick="color(this)"></div>
<div style="position:absolute;top:17%;left:46%;width:10px;height:10px;background:orange;" id="orange" onclick="color(this)"></div>
<div style="position:absolute;top:17%;left:47%;width:10px;height:10px;background:black;" id="black" onclick="color(this)"></div>
<div style="position:absolute;top:20%;left:43%;">Eraser</div>
<div style="position:absolute;top:22%;left:45%;width:15px;height:15px;background:white;border:2px solid;" id="white" onclick="color(this)"></div>
<img id="canvasimg" style="position:absolute;top:10%;left:52%;" style="display:none;">
<input type="button" value="save" id="btn" size="30" onclick="save()" style="position:absolute;top:55%;left:10%;">
<input type="button" value="clear" id="clr" size="23" onclick="erase()" style="position:absolute;top:55%;left:15%;">
</body>
</html>
Спасибо, Джейми, Это то, что я ищу. Но, могу ли я сделать это без выбора цвета ???. Значит, я хочу сделать это с использованием изображения вместо выбора цвета. Это возможно? Пожалуйста, помогите мне. – Arjun
Позвольте мне взглянуть. – AfromanJ
Я не уверен, как «рисовать» с изображением, но вы можете посмотреть на это [** Jcanvas Library **] (http://calebevans.me/projects/jcanvas/). [** Здесь это холст **] (http://jsfiddle.net/4Yhd3/) без выбора цвета. Вам просто нужно удалить элементы HTML, которые добавляют цвета к холсту. – AfromanJ
- 1. Как нарисовать линию движением мыши с помощью C#
- 2. Переместить контейнерный куб в соответствии с движением мыши
- 3. Изменить позицию div на translate3d в соответствии с движением мыши
- 4. Delphi Graphics32 как рисовать линию с помощью мыши на слое
- 5. рисовать линию в диаграмме
- 6. Как нарисовать линию на основе перемещения мыши с помощью Raphael.JS
- 7. Как рисовать линию в VIM?
- 8. Как рисовать линию в вяжете?
- 9. Как рисовать линию в UITableViewCell
- 10. Как рисовать линию с анимацией?
- 11. Расчет шарика.x в соответствии с движением paddle.x
- 12. Как управлять движением мыши в визуальном C++?
- 13. движение RichText с движением мыши в гибком
- 14. Управление движением мыши
- 15. Qt- как перемещать изображение в экране в соответствии с движением мыши
- 16. Медленно рисовать линию в Android
- 17. рисовать линию прокатки в UIView
- 18. Скребок элемента dom с движением мыши
- 19. three.js как рисовать линию с событием mousedown
- 20. Рисовать линию между двумя кнопками в wpf
- 21. как рисовать линию (маршрут) в android google map в соответствии с пройденными координатами
- 22. Как рисовать направленную линию в .Net?
- 23. Как рисовать прямую линию в jfreechart?
- 24. Как рисовать горизонтальную линию в ListView?
- 25. OpenGL - рисовать линию с точками
- 26. Как рисовать горизонтальную линию в Java Swing
- 27. Как рисовать вертикальную линию в UIScrollView
- 28. opengl как рисовать динамическую линию?
- 29. WinAPI - как рисовать пунктирную линию?
- 30. как рисовать линию на карте в android
Подробнее уточнение пожалуйста. – Albzi