Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   onwheel событие (https://javascript.ru/forum/events/74900-onwheel-sobytie.html)

Nlk 15.08.2018 10:04

onwheel событие
 
Добрый день!

Скажите пожалуйста, делаю onwheel слайдер столкнулся с проблемой. Данная строчка постоянно выдает Undefined при отсутствии события скролла:

event.deltaY || event.detail || event.wheelDelta;


Можно ее как нибудь изолировать что ли? Ведь пользователь иногда скролит а иногда использует клавиши для прокрутки слайдера соответственно сролла в этот момент не происходит и браузер видит Undefined здесь: event.deltaY.
Спасибо

рони 15.08.2018 10:31

Nlk,
делайте макет, всё что вы написали выше, это для телепатов.

ksa 15.08.2018 11:10

Цитата:

Сообщение от Nlk
Данная строчка постоянно выдает Undefined при отсутствии события скролла:
event.deltaY || event.detail || event.wheelDelta;

Тут кагбэ нужно понимать как работает логическое "ИЛИ"... ;)
Цитата:

Логическое ИЛИ (||)
expr1 || expr2

Возвращает expr1, если оно может быть преобразовано к true; в ином случае возвращает expr2. Так что, при вызове с булевыми значениями, || вернет true только в том случае, когда хотя бы один операнд истинен, иначе вернет false.
https://javascript.ru/boolean-operators

Nlk 15.08.2018 12:44

Всю портянку наверно не к чему выкладывать ..
// Проверка произошедшего события - onScroll или keydown
function checkKeyOrScroll(event) {
    if (deltaKey) { // Если deltaKey не пусто значит был keydown
        deltaScroll = deltaKey;
        start(deltaScroll);
    } else {
        deltaScroll = event.deltaY || event.detail || event.wheelDelta;
        start(deltaScroll);
    }
}
// Запуск следующего слайда
function start(deltaScroll) {
    запуск след слайда..

рони 15.08.2018 13:05

Цитата:

Сообщение от Nlk
deltaKey

что это?

Nlk 15.08.2018 13:44

рони,
deltaKey - это число генерирующееся после keydown и сообщающее направление скрола

рони 15.08.2018 14:09

Nlk, мне сложно совместить onwheel onScroll keydown
deltaKey в одно целое по вашему коду.

ksa 15.08.2018 14:59

Nlk, типа пример... ;)

var o={};
var deltaScroll = o.deltaY || o.detail || o.wheelDelta;
alert(deltaScroll);

ksa 15.08.2018 15:00

Цитата:

Сообщение от Nlk
Всю портянку наверно не к чему выкладывать ..

Пробуй сделать небольшой тестовый пример. ;)

Nlk 15.08.2018 15:51

ksa,
Цитата:

Сообщение от ksa (Сообщение 492776)
Nlk, типа пример... ;)

var o={};
var deltaScroll = o.deltaY || o.detail || o.wheelDelta;
alert(deltaScroll);

Вот именно эта проблема, у меня на определенный период в отсутствии события onwhell - event.deltaY даёт Undefined, потому что она становиться не определена. Здесь ничего не придумать, типа запрятать от интерпретатора в подфункцию какую нибудь? Или просто нужно исправлять Undefined и все?


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