Баг js-функции скроллера

В файле responsive.js есть вызов скролла, так вот скролл выполняется всегда, вне зависимости от передаваемого значение opt.need_scroll. На скрине видно (http://94.130.79.130/inj/20190820-154445-qRW1PE7t1r.png), что на вход поступил opt.need_scroll = false и скролл все равно выполнится. Прошу поправить код в самом ядре, с проверкой if (opt.need_scroll) { ..... }.

Спасибо за информацию. Мы передали ее разработчикам для изучения.

Здравствуйте.

В responsive.js:

                    opt.need_scroll = false;
                    setTimeout(function() {
                        $.scrollToElm(opt.jelm.data('caScroll'));
                    }, 310);

т.е. скролл не просто отменяется, он откладывается на 310мс.
Почему не нужно делать скролл?

Все правильно, скролл делать нужно! Только при условии, что opt. needd_scroll = true. На скрине я показал, что в функцию передаётся false, и скролл тоже отработает

Этот код навешивается через on при ините tabs. Если на странице есть несколько отдельных блоков с вкладками, то код навешивается несколько раз (3,4,5…). В результате, при одном тригере скрола событие срабатывает то самое количество раз и создается столько же таймеров со скролом.

Итого, 4 блока с вкладками, 4 инита needScroll, и по любому клику 4 последовательных скролла до одной и той же точки на экране, каждая по 310мс, в сумме 1,2 сек “застрявания” экрана. При этом на первом скроле opt.need_scroll равен true, а остальные, соотвенно уже false, но скрол это не останавливает. Вы добавляете правильное свойство, но не отслеживаете его значение. Зачем скроллить при opt.need_scroll == false?

Здравствуйте!

Мы исправили проблему с навешиванием нескольких событий ce.needScroll.
Так же стало возможно отменять скролл с помощью параметра opt.need_scroll = false.

Исправление войдет в CS-Cart 4.10.5.

Если вы хотите внести исправления, не дожидаясь выхода следующей версии, воспользуйтесь diff-файлом https://gist.github.com/csavoronin/c7b2dd8cd77e769ddd7a1a8e46bd3ab0

Вот инструкция, как воспользоваться этим файлом:
https://www.cs-cart.ru/docs/latest/upgrade/apply_diff_file.html

1 лайк