Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.08.2018, 10:04
Аватар для Nlk
Nlk Nlk вне форума
Кандидат Javascript-наук
Отправить личное сообщение для Nlk Посмотреть профиль Найти все сообщения от Nlk
 
Регистрация: 25.12.2016
Сообщений: 146

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

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

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


Можно ее как нибудь изолировать что ли? Ведь пользователь иногда скролит а иногда использует клавиши для прокрутки слайдера соответственно сролла в этот момент не происходит и браузер видит Undefined здесь: event.deltaY.
Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 15.08.2018, 10:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Nlk,
делайте макет, всё что вы написали выше, это для телепатов.
Ответить с цитированием
  #3 (permalink)  
Старый 15.08.2018, 11:10
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,206

Сообщение от Nlk
Данная строчка постоянно выдает Undefined при отсутствии события скролла:
event.deltaY || event.detail || event.wheelDelta;
Тут кагбэ нужно понимать как работает логическое "ИЛИ"...
Цитата:
Логическое ИЛИ (||)
expr1 || expr2

Возвращает expr1, если оно может быть преобразовано к true; в ином случае возвращает expr2. Так что, при вызове с булевыми значениями, || вернет true только в том случае, когда хотя бы один операнд истинен, иначе вернет false.
https://javascript.ru/boolean-operators
Ответить с цитированием
  #4 (permalink)  
Старый 15.08.2018, 12:44
Аватар для Nlk
Nlk Nlk вне форума
Кандидат Javascript-наук
Отправить личное сообщение для Nlk Посмотреть профиль Найти все сообщения от Nlk
 
Регистрация: 25.12.2016
Сообщений: 146

Всю портянку наверно не к чему выкладывать ..
// Проверка произошедшего события - 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) {
    запуск след слайда..
Ответить с цитированием
  #5 (permalink)  
Старый 15.08.2018, 13:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Сообщение от Nlk
deltaKey
что это?
Ответить с цитированием
  #6 (permalink)  
Старый 15.08.2018, 13:44
Аватар для Nlk
Nlk Nlk вне форума
Кандидат Javascript-наук
Отправить личное сообщение для Nlk Посмотреть профиль Найти все сообщения от Nlk
 
Регистрация: 25.12.2016
Сообщений: 146

рони,
deltaKey - это число генерирующееся после keydown и сообщающее направление скрола
Ответить с цитированием
  #7 (permalink)  
Старый 15.08.2018, 14:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

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

Последний раз редактировалось рони, 15.08.2018 в 15:00.
Ответить с цитированием
  #8 (permalink)  
Старый 15.08.2018, 14:59
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,206

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

var o={};
var deltaScroll = o.deltaY || o.detail || o.wheelDelta;
alert(deltaScroll);
Ответить с цитированием
  #9 (permalink)  
Старый 15.08.2018, 15:00
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,206

Сообщение от Nlk
Всю портянку наверно не к чему выкладывать ..
Пробуй сделать небольшой тестовый пример.
Ответить с цитированием
  #10 (permalink)  
Старый 15.08.2018, 15:51
Аватар для Nlk
Nlk Nlk вне форума
Кандидат Javascript-наук
Отправить личное сообщение для Nlk Посмотреть профиль Найти все сообщения от Nlk
 
Регистрация: 25.12.2016
Сообщений: 146

ksa,
Сообщение от ksa Посмотреть сообщение
Nlk, типа пример...

var o={};
var deltaScroll = o.deltaY || o.detail || o.wheelDelta;
alert(deltaScroll);
Вот именно эта проблема, у меня на определенный период в отсутствии события onwhell - event.deltaY даёт Undefined, потому что она становиться не определена. Здесь ничего не придумать, типа запрятать от интерпретатора в подфункцию какую нибудь? Или просто нужно исправлять Undefined и все?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Событие hover hfts_rider Events/DOM/Window 10 16.10.2014 11:51
Событие click Гробовщик jQuery 1 31.07.2013 07:28
Событие input и IE10 kobezzza Internet Explorer 2 21.03.2013 19:02
Как правильно подавить событие при подключении своего обработчика? Маэстро Firefox/Mozilla 2 03.09.2011 11:46
какое событие возникает во время формирования html IT-AleX Events/DOM/Window 2 20.02.2009 16:13