Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Запретить автопрокрутку при условии (https://javascript.ru/forum/misc/84284-zapretit-avtoprokrutku-pri-uslovii.html)

Ubivectel 28.07.2022 19:27

Запретить автопрокрутку при условии
 
Привет мир.

Имеем чат, сообщения выводятся внизу и автоматически прокручиваются, однако это неудобно кода читаешь переписку выше, вроде как нашел два фрагмента кода которые это делают:

if (this.order == "bottom") {
            this.insertAfter(nodo, insertO.lastChild);
        } else insertO.insertBefore(nodo, insertO.firstChild);
        if (!yo && this.sound == 1) this.play_msg_sound();
        this.ajustar_scroll();


kide.ajustar_scroll = function() {
    if (kide.scrolling) return;
    if (kide.order == "bottom")
        kide.attr(
            "KIDE_msgs",
            "scrollTop",
            kide.attr("KIDE_msgs", "scrollHeight")
        );
    else kide.attr("KIDE_msgs", "scrollTop", 0);
};


Но как дописать условие толку как всегда не хватает :help:

Ubivectel 28.07.2022 19:31

Ах да, не написал чего хочу ))) Запретить прокрутку если сдержимое дива не равно bottom: 0;

Nexus 28.07.2022 19:39

Перед добавлением нового сообщения посмотрите на scrollTop контентной области, если она прокручена не максимально, не скрольте страницу.

Ubivectel 28.07.2022 19:42

Я логику-то как раз понимаю, моя беда синтаесис (

рони 28.07.2022 21:33

Ubivectel,
пробуй ...
let scroll = true;
if (this.order == "bottom") {
            scroll = this.attr("KIDE_msgs", "scrollTop") > (this.attr("KIDE_msgs", "scrollHeight") - this.attr("KIDE_msgs", "clientHeight"));
            this.insertAfter(nodo, insertO.lastChild);
        } else insertO.insertBefore(nodo, insertO.firstChild);
        if (!yo && this.sound == 1) this.play_msg_sound();
if(scroll) this.ajustar_scroll();

Ubivectel 28.07.2022 21:48

Хммм, не сработало, вот оно: https://noviy-kovcheg.ru/smoking

рони 28.07.2022 22:13

Ubivectel,
kide.js в строке 202 и прочих пусто

Ubivectel 28.07.2022 22:22

Не в тот шаблон внес изменения, торможу, сейчас звменил там где надо, но не срабатывает (

рони 28.07.2022 22:45

Ubivectel,
верни как было всё.

Ubivectel 28.07.2022 22:46

Сделал


Часовой пояс GMT +3, время: 06:52.