Подскажите, как сделать drag n drop на мобайле или как растянуть?

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
Куку, столкнулся тут, не совсем понимаю как реализовать.
Имеем такое

113122

1. <div class="CropImage_selectionHandle__1n8fV" data-ord="ne"></div>
2. <div class="CropImage_selectionHandle__1n8fV" data-ord="sw"></div>

в точках 1 и 2 имеем div, как их растянуть, получается до 100%, наверно?
желательно через xpath
спасибо
 
Последнее редактирование:

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
Бен, Бен, это Данила, ай ниид хэлп (с)

братцы, хелпаните, нужно делать тач по xpath, удерживать и тащить его к координатам...
 

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 630
Благодарностей
1 225
Баллы
113
data-ord="ne" и data-ord="sw" - это постоянные атрибуты?
нужны еще точки, куда тянуть. видать, надо код всей картинки.


Только надо найти координаты, КУДА тянуть.
C#:
// Получаем координаты откудя тянуть
HtmlElement DragLeft = instance.ActiveTab.GetDocumentByAddress("0").FindElementByAttribute("div", "data-ord", "ne", "regexp", 0);
if (DragLeft.IsVoid) return -1;
string DragLeftCoord = DragLeft.GetAttribute("leftinbrowser");

// Получаем координаты откудя тянуть
HtmlElement DragTop = instance.ActiveTab.GetDocumentByAddress("0").FindElementByAttribute("div", "data-ord", "ne", "regexp", 0);
if (DragTop.IsVoid) return -1;
string DragTopCoord = DragTop.GetAttribute("topinbrowser");

// Получаем координаты куда тянуть
HtmlElement DropLeft = instance.ActiveTab.GetDocumentByAddress("0").FindElementByAttribute("div", "название_атрибута", "значение_атрибута", "regexp", 0);
if (DropLeft.IsVoid) return -1;
string DropLeftCoord = DropLeft.GetAttribute("leftinbrowser");

// Получаем координаты куда тянуть
HtmlElement DropTop = instance.ActiveTab.GetDocumentByAddress("0").FindElementByAttribute("div", "название_атрибута", "значение_атрибута", "regexp", 0);
if (DropTop.IsVoid) return -1;
string DropTopCoord = DropTop.GetAttribute("topinbrowser");

//Немного рандомизируем координаты
Random rnd = new Random();
int rnd_left = rnd.Next(1, 3);
int rnd_top = rnd.Next(1, 3);
int rnd_move_left = rnd.Next(1, 3);
int rnd_move_top = rnd.Next(1, 3);

//Получаем координаты для перетаскивания
int DragLeftCoordInt = int.Parse(DragLeftCoord) + rnd_left;
int DragTopCoordInt = int.Parse(DragTopCoord) + rnd_top;
int DropLeftCoordInt = int.Parse(DropLeftCoord) + rnd_left + rnd_move_left;
int DropTopCoordInt = int.Parse(DropTopCoord) + rnd_top + rnd_move_top;

instance.ActiveTab.FullEmulationMouseDragAndDrop(DragLeftCoordInt, DragTopCoordInt, DropLeftCoordInt, DropTopCoordInt);
За чистоту и красоту кода не отвечаю, неделю назад подобную задачу для себя решал, все отлично работало )) Уверен, все это можно раз в пять-десять сократить, но, как говорится, вам шашечки или ехать ))
Возможно, для выяснения точки, куда тянуть, надо будет высчитать ее координаты через сложение левой верхней координаты и ширины картинки (в атрибутах нет вроде rightinbrowser, всегда все считается от левого верхнего края).
 
Последнее редактирование:
  • Спасибо
Реакции: backoff и Hannes

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
Да, величины постоянные, можно ли сделать для xpath? я в атрибутах плохо шарю.
/ Получаем координаты куда тянуть
плюс не совсем понятно как получить эти координаты "куда тянуть", надо просто тянуть к углу, то есть надо получить координаты нужного угла, верхнего правого и нижнего левого, попробовал код, но не работает, я так понял потому что не закончен с атрибутами, как раз, куда тянуть
 

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 630
Благодарностей
1 225
Баллы
113
Ну, для того, чтобы "закончить", в идеале, нужно видеть полностью страницу )) На край - информацию по изображению, которое "снизу" (т.е., нам надо найти правый верхний угол, а его надо рассчитать через добавление ширины картинки к левой верхней точке). Просто "тянуть в угол" - такого нет, к сожалению. Можно, конечно, что-нибудь городить, но, думаю, проще взять готовые координаты ))
Код, которым фото на страницу добавлено (<img...>) напиши.
 

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 630
Благодарностей
1 225
Баллы
113
В общем, вроде разобрались, все работает )) Мало ли, как обычно, кто-нибудь зайдет в тему спустя какое-то время.
Как и говорили, ищем координаты откуда и куда (тут у каждого свои методы), дальше "тащим"...
На десктопе:
instance.ActiveTab.FullEmulationMouseDragAndDrop(DragX, DragY, DropX, DropY);
На мобиле
instance.ActiveTab.Touch.SwipeBetween(DragX, DragY, DropX, DropY);
 
  • Спасибо
Реакции: backoff

Murdoc

Client
Регистрация
08.09.2021
Сообщения
59
Благодарностей
6
Баллы
8
В общем, вроде разобрались, все работает )) Мало ли, как обычно, кто-нибудь зайдет в тему спустя какое-то время.
Как и говорили, ищем координаты откуда и куда (тут у каждого свои методы), дальше "тащим"...
На десктопе:
instance.ActiveTab.FullEmulationMouseDragAndDrop(DragX, DragY, DropX, DropY);
На мобиле
instance.ActiveTab.Touch.SwipeBetween(DragX, DragY, DropX, DropY);
Друг подскажи пожалуйста как координаты подтянуть. ?
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)