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

Алилуйя, спасибо

Вот что получилось в итоге:

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;
        document.getElementById("kide-counter").style.display = "block";
        return;
    }
    if (kide.order == "bottom")
        kide.attr("KIDE_msgs", "scrollTop", kide.attr("KIDE_msgs", "scrollHeight"));
    else kide.attr("KIDE_msgs", "scrollTop", 0);
};

document.addEventListener("DOMContentLoaded", function () {
    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) {
            newMessageCount = 0;
            document.getElementById("kide-counter").textContent = "";
            document.getElementById("kide-counter").style.display = "none";
            return;
        }
    })
});


Но странно, при попытке вынести "kide-counter" в переменную:

let kideCounter = document.getElementById('kide-counter');

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) {
        kideCounter.textContent = newMessageCount;
        kideCounter.style.display = "block";
        return;
    }
    if (kide.order == "bottom")
        kide.attr("KIDE_msgs", "scrollTop", kide.attr("KIDE_msgs", "scrollHeight"));
    else kide.attr("KIDE_msgs", "scrollTop", 0);
};

document.addEventListener("DOMContentLoaded", function () {
    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) {
            newMessageCount = 0;
            kideCounter.textContent = "";
            kideCounter.style.display = "none";
            return;
        }
    })
});


В принципе без разницы, но очень интересно почему )
Ответить с цитированием