Форум программистов, компьютерный форум, киберфорум
JavaScript: HTML5 Canvas
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
16 / 12 / 4
Регистрация: 10.09.2018
Сообщений: 373
1

DRAG AND DROP Circle

05.09.2020, 06:56. Показов 672. Ответов 0

Author24 — интернет-сервис помощи студентам
Здравствуйте. Не могу понять, как сделать перетаскивание кругов. По экрану.
Круги рисуются по щелчку мыши и выводятся их координаты. Хочу сделать еще DRAG AND DROP кругов, и что бы менялись координаты в списке. Буду очень признателен за помощь

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <style>
        *{
    margin: 10;
    padding: 10;
    box-sizing: border-box;
}
 
#canvas{
    border: 2px solid black;
}
 
 
.coord {
    opacity: 0.5;
    -webkit-transition: opacity .1s linear;
    -moz-transition: opacity .1s linear;
    -o-transition: opacity .1s linear;
    transition: opacity .1s linear;
    width: 100px;
    border: solid 1px black;
}
 
    </style>
    <link rel="stylesheet" href="style.css">
    <title>Document</title>
</head>
 <body>
 
    <canvas id="canvas"></canvas>
    <ol id="coords"></ol>
    
<script>
    window.addEventListener("load", () => {
    const canvas = document.querySelector("#canvas");
    const ctx = canvas.getContext("2d");
    var countClick = 0;
    var count = 0;
    var x, y;
 
    canvas.height = screen.height;
    canvas.width = screen.width;
    
    let painting = false;
 
    function startPosition(e){
        
        x = e.clientX;
        y = e.clientY;      
 
        if(countClick < 3){
            painting = true;
        }
        else{
            painting=false      
        }
        countClick++;
        draw(e);        
    }
    
        $(document).ready(function() {
 
            $(document).click(function(e) {
    
                count++;
                
                    mark = $("<span>").css({
                        'position':'absolute',
                        'border':'solid 2px #cc00cc',
                        'border-radius':'20px',
                        'width':'17px',
                        'height':'17px',
                        top: e.pageY-10,
                        left: e.pageX-10
                    });             
                if(count < 4){
                    coord = $("<li>" + e.pageX + " x " + e.pageY + "</li>");
                    $(coord).attr('id', "coord" + count);
                    $(coord).addClass('coord');
                    $(coord).css('display', 'none');
                    $(coord).hover(coord_focus, coord_unfocus);
                    $("ol#coords").append(coord);           
                    $(coord).show('slow');          
                }
            });         
        }); 
    
    function coord_focus(e) {
        $(this).addClass('focused-coord');
        var id = $(this).attr('id');
        $("div#marks .mark#mark" + id.charAt( id.length-1 )).addClass('focused-mark');
    }
    
    function coord_unfocus(e) {
        $(this).removeClass('focused-coord');
        var id = $(this).attr('id');
        $("div#marks .mark#mark" + id.charAt( id.length-1 )).removeClass('focused-mark');
    }
 
    function draw(e){
        if (!painting) return;
        ctx.lineWidth = 2;
        ctx.lineCap = "round";
        ctx.strokeStyle="red";
        
        ctx.beginPath();
        ctx.arc(e.clientX, e.clientY, 22, 0, 2 * Math.PI);          
        ctx.stroke();
 
    }       
 
    canvas.addEventListener("mousedown", startPosition);            
    
})
 
 
</script>
 
    </body>
</html>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.09.2020, 06:56
Ответы с готовыми решениями:

Drag drop
Нужно определить по какому именно слою щелкнул пользователь клавишей мыши, и затем этот объект...

HTML5. Drag and Drop
Не перетаскивается Условие задачи Реализовать функцию перемещения элементов веб - страницы...

Частичное перемещение drag and drop?
Товарищи! Нужна помощь: и есть два блока div один в другом(синий в красном). Вопрос: как...

Drag and drop - как реализовать?
Доброго времени суток, попался мне один лэндинг в качестве учебного, там есть в конце оказался...

0
05.09.2020, 06:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.09.2020, 06:56
Помогаю со студенческими работами здесь

Как сохранить результат Drag and Drop?
.mydiv { float: left; width: 100px; height: 35px; margin: 10px; padding:...

Перемещение картинок с использованием Drag and Drop
Помогите выполнить пожалуйста задание. Вот формулировка: Расположить в окне несколько картинок....

Подскажите пожалуйста уроки по созданию карусели с Drag’n’Drop на js?
Устал искать, нет нигде, почему то все называют слайдер тоже каруселью, а нужна именно карусель,...

Предоставить возможность пользователю перемещать картинки с использованием механизма «drag and drop»
Расположить в окне несколько картинок. Предоставить возможность пользователю перемещать картинки с...

Drag and drop
Есть список статей, хочу менять их местами с помощью drag and drop подскажите что почитать ...

Drag and Drop
Drag and Drop Подскажите пожалуйста как сохранить перетаскиваемый элемент в какой-либо из блоков...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru