@westdp

Почему увеличивается частота вызова функции?

Всем привет, подскажите пожалуйста такой ворос:

$('body, html').mousewheel(function (event, delta) {
            this.scrollLeft -= (delta * 20);
            event.preventDefault();
            console.log(delta + 'endScroll');
        });


При скролле колёсиком мышки смещаю положение экрана на 20 * delta, delta берется из плагина mousewheel.js (1 если вверх крутишь колёсика и -1 вниз).

И если человек хочет крутить не колёсиком мышки, а кнопками влево или вправо, то я просто смещаю на 50пкс:
$(".right").click(function (e) {
    body.scrollLeft += 50;
    html.scrollLeft += 50;
});


Так вот мой вопрос, когда мы крутим колёсико мышки, вызов функции происходит 2 раза на одно смещение колёсика, это видно из консоли:
9dd24ab38cb745548bd70af1e45f6810.png

Когда после это по нажимать на кнопку вправо ( на клавиатуре ) например один раз и потом покрутить колёсико один раз на одно значение, то вызов функции будет 4 раза на одно смещение:
0c9eb08174a24083b0b1d4ffd1477c82.png
то при последующем скроле будет 14 при одном смещении косёсика.

Поготе плз решить эту проблему, я надеюсь понятно написал, если что там все по консоли видно)
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
Вот это
$('body, html').mousewheel(function (event, delta) {
            this.scrollLeft -= (delta * 20);
            event.preventDefault();
            console.log(delta + 'endScroll');
        });

вызывается у вас и в функции endScroll, и в scroll_ver_to_hor.
Этот код добавляет слушателя на событие mousewheel
Таким образом, каждый скролл (или нажатие кнопки), вешает сам на себя все больше обработчиков.
Вынесите этот код из обработчика, он должен выполняться только один раз
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
saintbyte
@saintbyte
Django developer
onScroll пробывали?
Ответ написан
hahenty
@hahenty
('•')
событие навешано на два элемента: хтмл и боди; нужно что-то одно для скролла.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект