Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 28.07.2022, 23:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,149

Ubivectel,
ок! if(scroll < -100) -100 можно подстроить, если нужно, от -50 до -300
Ответить с цитированием
  #22 (permalink)  
Старый 28.07.2022, 23:59
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 171

Я правильно понимаю, что это диапазон прокрутки с которого начнет работать условие? Т.е. если прокручено меньше -50 / -300 то автопрокрутка будет срабатывать?
Ответить с цитированием
  #23 (permalink)  
Старый 29.07.2022, 00:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,149

Ubivectel,
да
Ответить с цитированием
  #24 (permalink)  
Старый 10.11.2024, 08:43
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 171

Привет мир!

Взбрела в голову мысль добавить счетчик сообщений, если скролл не = 0, сделал так:

kide.ajustar_scroll = function () {
    if (kide.scrolling) return;
    let scroll = kide.attr("KIDE_msgs", "scrollTop") - (kide.attr("KIDE_msgs", "scrollHeight") - kide.attr("KIDE_msgs", "clientHeight"));
   
    if (scroll < -300) {
        document.getElementById('kide-counter').textContent = newMessageCount;
        return;
    }
    if (kide.order == "bottom")
        kide.attr("KIDE_msgs", "scrollTop", kide.attr("KIDE_msgs", "scrollHeight"));
    else kide.attr("KIDE_msgs", "scrollTop", 0);
};


Работает и считает все хорошо, хоть убей не могу заставить код делать
document.getElementById('kide-counter').textContent = '';

Когда пользователь возвращает прокрутку блока id="KIDE_msgs" вниз (
Ответить с цитированием
  #25 (permalink)  
Старый 10.11.2024, 12:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,149

Ubivectel,
как вариант
если находясь внизу, отправить сообщение, то счётчик обнулится.
kide.ajustar_scroll = function() {
            if (kide.scrolling) return;
            let scroll = kide.attr("KIDE_msgs", "scrollTop") - (kide.attr("KIDE_msgs", "scrollHeight") - kide.attr("KIDE_msgs", "clientHeight"));
            if (scroll < -300) {
                document.getElementById('kide-counter').textContent = newMessageCount;
                return;
            }
            if (kide.order == "bottom") {
                kide.attr("KIDE_msgs", "scrollTop", kide.attr("KIDE_msgs", "scrollHeight"));
                newMessageCount = 0;
                document.getElementById('kide-counter').textContent = '';
            } else kide.attr("KIDE_msgs", "scrollTop", 0);
        };
Ответить с цитированием
  #26 (permalink)  
Старый 10.11.2024, 14:16
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 171

Что бы он обнулялся после отправки нового сообщения было довольно легко, я пытался именно добиться что бы он обнулялся сразу при прокрутке блока вниз. Чем и сломал моск не только себе, но и GPT ) Ну не верю, что нет решения для js-всемогущего )

Последний раз редактировалось Ubivectel, 10.11.2024 в 16:13.
Ответить с цитированием
  #27 (permalink)  
Старый 10.11.2024, 20:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,149

Сообщение от Ubivectel
при прокрутке блока вниз
обработчик на прокрутку колёсиком мыши
document.querySelector("#KIDE_msgs").addEventListener("scroll", function() {
            let scroll = kide.attr("KIDE_msgs", "scrollTop") - (kide.attr("KIDE_msgs", "scrollHeight") - kide.attr("KIDE_msgs", "clientHeight"));
            if (kide.scrolling) return;
            if (scroll > -3) {
                document.getElementById("kide-counter").textContent = "";
                return;
            }
        })
Ответить с цитированием
  #28 (permalink)  
Старый 10.11.2024, 21:09
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 171

Неа, какую-то подобную конструкцию уже писал, но нет. Посмотреть тут: https://noviy-kovcheg.ru/chatФайл JS вот: https://noviy-kovcheg.ru/components/...top/js/kide.js
Ответить с цитированием
  #29 (permalink)  
Старый 10.11.2024, 21:54
Профессор
Отправить личное сообщение для Ubivectel Посмотреть профиль Найти все сообщения от Ubivectel
 
Регистрация: 01.12.2020
Сообщений: 171

Консоль ругается на это:
document.querySelector("#KIDE_msgs").addEventListener("scroll", function()
Ответить с цитированием
  #30 (permalink)  
Старый 10.11.2024, 23:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,149

Сообщение от Ubivectel
Консоль ругается на это:
оберни в
document.addEventListener("DOMContentLoaded", function()
{...});
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена картинки кнопки при нажатии и обратно при повторном нажатии mff Общие вопросы Javascript 15 03.05.2018 14:12
Вывод массива при условии Роман Андреевич Общие вопросы Javascript 6 22.02.2017 10:37
Выполнение действия при определённом условии Jekins jQuery 2 16.05.2013 19:18
Скрывать элемент при условии Aftal1ck jQuery 3 01.11.2012 16:00
Загрузка картинок при условии AlienZ Общие вопросы Javascript 11 23.06.2011 20:14