Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 19.08.2023, 21:43
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 171

Блоку .KIDE_msg_top имею ввиду
Ответить с цитированием
  #12 (permalink)  
Старый 19.08.2023, 21:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,144

Сообщение от Ubivectel
хотелось бы свайп по блоку,
let touch_yy, touch_xx;
document.addEventListener("touchstart", (event) => {
    let target = event.target;
    if (target = target.closest('.KIDE_quote')) {
        touch_yy = event.changedTouches[event.changedTouches.length - 1].clientY;
        touch_xx = event.changedTouches[event.changedTouches.length - 1].clientX;
    }
})
document.addEventListener("touchend", (event) => {
    let target = event.target;
    if (target = target.closest('.KIDE_quote')) {
        let swap = (Math.abs(touch_yy - event.changedTouches[event.changedTouches.length - 1].clientY) > 30 || Math.abs(touch_xx - event.changedTouches[event.changedTouches.length - 1].clientX) > 30)
        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`); // ставляем текст в инпут
        }
    }
})
Ответить с цитированием
  #13 (permalink)  
Старый 19.08.2023, 21:47
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 171

Сообщение от рони Посмотреть сообщение
let touch_yy, touch_xx;
document.addEventListener("touchstart", (event) => {
    let target = event.target;
    if (target = target.closest('.KIDE_quote')) {
        touch_yy = event.changedTouches[event.changedTouches.length - 1].clientY;
        touch_xx = event.changedTouches[event.changedTouches.length - 1].clientX;
    }
})
document.addEventListener("touchend", (event) => {
    let target = event.target;
    if (target = target.closest('.KIDE_quote')) {
        let swap = (Math.abs(touch_yy - event.changedTouches[event.changedTouches.length - 1].clientY) > 30 || Math.abs(touch_xx - event.changedTouches[event.changedTouches.length - 1].clientX) > 30)
        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(`\n`); // ставляем текст в инпут
        }
    }
})
Да, именно так и сделал, мало помалу вс е же учусь, многое уже сам делаю )
Ответить с цитированием
  #14 (permalink)  
Старый 19.08.2023, 21:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,144

Ubivectel,
ок!
Ответить с цитированием
  #15 (permalink)  
Старый 19.08.2023, 21:52
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 171

Что-то бы такое еще добавить:

if (end < start - offset) {
            console.log('Swipe right');
            swipeElement.classList.add('swiped');
            setTimeout(function () {
                swipeElement.classList.remove('swiped');
            }, 300);
        }


Что бы было не только функционально, но и красиво
Ответить с цитированием
  #16 (permalink)  
Старый 19.08.2023, 22:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,144

Ubivectel,
как вариант...
let touch_yy, touch_xx;
document.addEventListener("touchstart", (event) => {
    let target = event.target;
    if (target = target.closest('.KIDE_quote')) {
        touch_yy = event.changedTouches[event.changedTouches.length - 1].clientY;
        touch_xx = event.changedTouches[event.changedTouches.length - 1].clientX;
    }
})
document.addEventListener("touchend", (event) => {
    let target = event.target;

    if (target = target.closest('.KIDE_quote')) {
        let swap = (Math.abs(touch_yy - event.changedTouches[event.changedTouches.length - 1].clientY) > 30 || Math.abs(touch_xx - event.changedTouches[event.changedTouches.length - 1].clientX) > 30)
        if (swap) {
            target = target.closest('.KIDE_msg_top');
            target.classList.add('swiped');
            setTimeout(function () {
                target.classList.remove('swiped');
            }, 300);
            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`); // ставляем текст в инпут
        }
    }
})
Ответить с цитированием
  #17 (permalink)  
Старый 19.08.2023, 22:18
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 171

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

Ubivectel,
css добавил?
.KIDE_msg_top.swiped{ ...}
Ответить с цитированием
  #19 (permalink)  
Старый 19.08.2023, 22:25
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 171

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

Ubivectel,
}, 300);
время увеличить попробуй
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить сообщение fear111 Общие вопросы Javascript 9 25.03.2016 20:40
Нужно всплывающее сообщение для сайта bursnabby Работа 4 30.05.2015 20:21
Система всплывающих сообщений ruslan_mart Ваши сайты и скрипты 32 27.05.2015 21:28
Как атоматически разослать одно сообщение многим людям? tsvigo Общие вопросы Javascript 4 09.01.2012 18:21
Это только для профи(всплывающее сообщение) Derack Элементы интерфейса 6 23.07.2009 14:22