Показать сообщение отдельно
  #2 (permalink)  
Старый 19.08.2023, 20:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

touch swap event
Ubivectel,
пробуй...
let touch_y, touch_x;
        document.addEventListener("touchstart", (event) => {
            let target = event.target;
            if (target = target.closest('.qutes')) {
                touch_y = event.changedTouches[event.changedTouches.length - 1].clientY;
                touch_x = event.changedTouches[event.changedTouches.length - 1].clientX;
            }
        })
        document.addEventListener("touchend", (event) => {
            let target = event.target;
            if (target = target.closest('.qutes')) {
                let swap = (Math.abs(touch_y - event.changedTouches[event.changedTouches.length - 1].clientY) > 3 || Math.abs(touch_x - event.changedTouches[event.changedTouches.length - 1].clientX) > 3)
                if (swap) {
                    target = target.closest('.KIDE_msg_top')
                    let clon = target.cloneNode(true); // Делаем копию узла с потомками
                    clon.querySelectorAll(".KIDE_quote").forEach(el => el.remove()); // Удаляем из копии все span.KIDE_msg
                    let text = clon.textContent.trim(); // Берем текст из клона
                    if (text.length > 60) text = text.slice(0, 60) + '...'
                    kide.insertSmile(`[QUOTE]${text}[/QUOTE]\n`); // ставляем текст в инпут
                }
            }
        })
Ответить с цитированием