|
Цитировать сообщение свайпом
Привет мир!
Местный профессор написал вот такой скрипт, который прекрасно работает, вот он:
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, время: 13:58. |
|