|
Цитировать сообщение свайпом
Привет мир!
Местный профессор написал вот такой скрипт, который прекрасно работает, вот он: document.addEventListener("click", ({ target }) => { if (target = target.closest('.qutes')) { 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`); // ставляем текст в инпут } }); Код цитирует сообщения в чате. Очень захотелось научить телефон делать это свайпом, нашел такой код: let start = null; swipeElement.addEventListener("touchstart", function (event) { if (event.touches.length === 1) { start = event.touches.item(0).clientX; } else { start = null; } }); swipeElement.addEventListener("touchend", function (event) { let offset = 100; if (start) { let end = event.changedTouches.item(0).clientX; if (end < start - offset) { console.log('Swipe right'); } } }); Но совместить их явно не для моих пока способностей, я долго пытался справиться самостоятельно, честно)))) :help: |
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`); // ставляем текст в инпут } } }) |
Привет рони.
Чето пока не алё, опять поди туплю. Файл: https://noviy-kovcheg.ru/components/.../kidecustom.js в самом конце |
Ubivectel,
поставь скрипт отдельно там же, но действительно в конце , но не внутри чего-то. удалять тоже ничего не нужно. |
Так?
|
Ubivectel,
да. |
Полагаю все же внутри этого надо?
jQuery(function () { }); |
Цитата:
|
Цитата:
|
Аааа, а я думаю, что оно иногда вдруг срабатывает )))))))))))))
Не, хотелось бы свайп по блоку, но уже сообразил как это поменять, заработало, для полного марафета визуализировать бы как-то, думаю самое правильное будет при свайпе добавлять на пол секунды класс, скажем swiped. наверное это и сам асилю, но сегодня так изломал голову... ) |
Часовой пояс GMT +3, время: 18:16. |
|