Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
JavaScript Расстояние от края блока до края блока document.getElementsByClassName(cmid).getBoundingClientRect().top - data.header.height() - 10 Определяю расстояние от верхнего края блока до вернего края браузера, затем вычитаю высоту шапки. Имеется ли решение при котором не придется высчитывать высоту шапки. Узнать расстояние от верхнего края блока, до верхнего не окна браузера, а до верхнего края другого блока? https://www.cyberforum.ru/ javascript-beginners/ thread2578094.html Игра в загадки. Загадать загадку. Если ответ верен – поздравить пользователя. Затем сообщить, что игра окончена. JavaScript
Всем привет! Меня зовут VitoScaletta, совсем недавно начал обучаться JS, но очень тяжело в голову заходит информация, но я не сдаюсь! В общем у меня есть одна задача, которую я не могу решить, вот ее условие, если у кого то есть свободное время буду очень признателен вам за помощь! 1. Игра в загадки. a. Загадать загадку. Если ответ верен – поздравить пользователя. Затем сообщить, что игра...
JavaScript Не работает "или" https://www.cyberforum.ru/ javascript-beginners/ thread2578013.html
function func() { var re = 1 || 2; rere.innerHTML=re; } <input type="submit" onclick="func()"> <p id="rere">0</p>
JavaScript Вызвать функцию, имея название функции в виде строчки https://www.cyberforum.ru/ javascript-beginners/ thread2578003.html
Есть строчка 'core', далее есть объект Обычно вызываю data.core(....), так вот имеем наименование функции в виде строчки. Как вызвать объект и соответственно передать в него параметры?
Добавить объект в уже существующий JavaScript
const data = { ling(vl) { } } ВОзможно добавить в уже существующий объект, а затем вызвать ее из изначального объекта, передав в нее данные? data.ggg() { alert('ff');
JavaScript Как сделать, чтобы заработало? onload=\"$(this).val('').focus().val(' ')\" <textarea name=\"comment\" placeholder=\"Сообщение\" type=\"textarea\" maxlength=\"1000\" onload=\"$(this).val('').focus().val(' ')\"></textarea> Как сделать тоже самое, только чтобы заработало, не вынося в функцию... https://www.cyberforum.ru/ javascript-beginners/ thread2577834.html
JavaScript не получается сменить классы https://www.cyberforum.ru/ javascript-beginners/ thread2577809.html
<?php require "db.php"; ?> <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge">
JavaScript сделать кнопку неактивной и добавить подсказку
Добрый день. Подскажите, пожалуйста, как возможно сделать кнопку с помощью свойства disabled и повесить ещё подсказку на неё? или можно заблокировать кнопку каким-то ещё и другим свойством. так как disabled не позволяет работать подсказке....
JavaScript изменение массива https://www.cyberforum.ru/ javascript-beginners/ thread2577665.html
доброй ночи! подскажите, как из массива объектов let fruit= получить массив объектов:
JavaScript Защита от незаполненных input Добрый вечер, господа! Есть следующая задачка: - объявляется ассоциативный массив; - через два input в него передается и записывается ключ и значение через кнопку; - потом все это выводится на экран (одна итерация - одна новая пара ключ-значение, должно быть). Я хочу обрезать возможность записи в ассоциативный массив если в input введена не полная информация (либо один либо оба пустые). По... https://www.cyberforum.ru/ javascript-beginners/ thread2577656.html
Как определить столкновение объектов JavaScript
Как сделать столкновение объектов. Когда зеленый объект прикасается слева или справа красный объект или когда верхняя часть зеленого объекта сталкивается с нижней частью красного объекта. Скажите пожалуйста
JavaScript нахождение ближайшей точки по координатам https://www.cyberforum.ru/ javascript-beginners/ thread2577521.html
Приветствую! Если не сложно подскажите формулу для вычисления ближайшей точки. Задача: задать широту и долготу в качестве параметров, и вернуть имя ближайшего города из массива объектов: cities = только, пожалуйста, без всяких супермега умных вычислений, задача на уровень знаний junior
19 / 14 / 5
Регистрация: 12.01.2020
Сообщений: 38
05.02.2020, 12:29 0

Реализовать на JS перетаскивание мышью нескольких изображений - JavaScript - Ответ 14228874

05.02.2020, 12:29. Показов 10059. Ответов 3
Метки (Все метки)

Ответ

Alborki, приведу простой пример ниже. Код полностью документирован, поэтому разобраться не составит труда. Основной принцип, который лежит в основе решения Вашей задачи, это вычисление абсолютного положения курсора мыши минус смещение курсора мыши относительно самого изображения.
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body style="position: relative; margin: 0;">   
    <img src="BlackMare.png" style="position: absolute; top: 0; left: 0;">
    <img src="BlackMare.png" style="position: absolute; top: 0; left: 250px;">
    <img src="BlackMare.png" style="position: absolute; top: 250px; left: 50px;">
    <script src="index.js"></script>
</body>
</html>
Javascript
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
// получить все изображения !!!в документе (можно использовать контейнер)
const images = document.getElementsByTagName("img");
 
// слушаем события движения курсора мыши относительно окна браузера
window.addEventListener("mousemove", mouseMove);
 
// обработчик движения курсора мыши относительно окна браузера ======
function mouseMove(event) {
  // если "ЛКМ" зажата
  if (Mouse.Lbtn) {
    Mouse.posX = event.clientX; // текущая координата по оси Х
    Mouse.posY = event.clientY; // текущая координата по оси Y
  }
}
// ==================================================================
 
// объект состояния мыши =============================================
let Mouse = {
  targetImage: null, // целевой объект (активное изображение)
  posX: null, // позиция курсора по оси Х (относительно окна браузера)
  posY: null, // позиция курсора по оси Y (относительно окна браузера)
  dx: null, // позиция курсора по оси Х (относительно изображения)
  dy: null, // позиция курсора по оси Y (относительно изображения)
  Lbtn: false // статус "ЛКМ" (по умолчанию "ЛКМ" отпущена)
};
// ===================================================================
 
// обходим HTML коллекцию изображений и добавляем 2 обработчика
// событий для каждого из них. "onmousedown" и "onmouseup"
for (let index = 0; index < images.length; index++) {
  images[index].onmousedown = imageMouseDown;
  images[index].onmouseup = imageMouseUp;
}
 
// обработчик "ЛКМ" нажата
function imageMouseDown(event) {
  event.preventDefault(); // отменяем дефолтное поведение
  Mouse.targetImage = this; // задаем целевой объект изображения
  Mouse.Lbtn = true; // статус "ЛКМ" переводим в "true"
  // задаем текущее положение курсора
  Mouse.posX = event.clientX;
  Mouse.posY = event.clientY;
  // задаем смещение курсора (относительно изображения)
  Mouse.dx = event.layerX;
  Mouse.dy = event.layerY;
  // запускаем анимацию перемещения изображения
  imageMove();
}
 
// обработчик "ЛКМ" отпущена
function imageMouseUp() {
  Mouse.Lbtn = false; // статус "ЛКМ" переводим в "false"
  Mouse.targetImage = null; // сбрасываем целевой объект изображения
}
 
// перемещение изображения
function imageMove() {
  // если статус "ЛКМ" "true"
  if (Mouse.Lbtn) {
    // задаем inline стили для изображения. Свойству top и left
    // присваиваем значение текущего положения курсора минус
    // смещение курсора относительно изображения
    Mouse.targetImage.style.top = Mouse.posY - Mouse.dy + "px";
    Mouse.targetImage.style.left = Mouse.posX - Mouse.dx + "px";
    // запрашиваем событие анимации. В качестве callback пердаем
    // текущую функцию. Анимация будет повторяться до тех пор
    // пока статус "ЛКМ" не перейдет в состояние "false"
    window.requestAnimationFrame(imageMove);
  }
}


Вернуться к обсуждению:
Реализовать на JS перетаскивание мышью нескольких изображений JavaScript
1
Заказать работу у эксперта

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.02.2020, 12:29
Готовые ответы и решения:

Реализовать перетаскивание мышью элементов из одного списка в другой и обратно
На форме два списка (Listbox). Реализовать перетаскивание мышью элементов из одного списка в другой...

Перетаскивание контролов мышью
Нужно по нажатию мыши на элементе перетаскивать контрол(элемент) за курсором.

Перетаскивание блоков мышью
Здравствуйте, не знаете, как сделать перелистывание как в гугле или вк? Ну когда мышкой можно...

Перетаскивание объекта мышью
Добрый вечер появилась такая проблема: объекты не реагируют нужно на нажатие левой клавиши мыши,...

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

Перетаскивание символа мышью
Может быть кто-то знает, как именно сделать перетаскивание мышкой символа или слова. Скажем можено...

Перетаскивание панели мышью в рантайме
Напишите пожалуйста программку небольшую.1 панель и перетаскивается курсором вверх и вниз.

Перетаскивание объектов на форме мышью
Нужно сделать такое же, только в VB 6: Option Explicit Const SNAP! = 5 Dim Xdown!, Ydown! ...

Перетаскивание мышью компонента pictureBox
собственно говоря сам вопрос указан в теме: как сделать так чтобы можно было перетаскивать мышью...

Перетаскивание мышью объекта Picturebox
собственно есть код: //Создаем random для появления объектов Picturebox в случайных местах формы...

Перетаскивание линий на TCanvas, мышью
Посоветуйте пожалуйста, как можно реализовать следующую задачу: например, мы нарисовали линию на...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru