Если написать такой код:
document.querySelector('select[name=month]').onmousewheel = function (e) {
e.preventDefault();
};
То в консоль получаю такую ошибку:
Added non-passive event listener to a scroll-blocking 'wheel' event. Consider marking event handler as 'passive' to make the page more responsive. See https://www.chromestatus.com/feature/5745543795965952
Намекая на то чтоб я делал "пасивную" не блокирующую оброботку события, чтоб увеличить скорость прокрутки. Чтоб я делал типа так:
document.querySelector('select[name=month]').addEventListener('mousewheel', onmousewheel, {passive: true});
Но дело в том что мне как раз таки нужно блочить прокрутку. И я не хочу в консоль ворнинги. Пример такого случая (код можно запустить, нужно крутить колесиком на select
-е):
document.querySelector('select[name=month]').onmousewheel =
document.querySelector('select[name=year]').onmousewheel = function (e) {
e.preventDefault();
const options = this.options;
const newSelectIndex = options.selectedIndex
+ ((e.deltaY < 0) ? -1 : 1);
if (options[newSelectIndex]) {
options.selectedIndex = newSelectIndex;
}
};
<form style="text-align:center">
<select name="month">
<option value="1"> January</option>
<option value="2"> February</option>
<option value="3"> March</option>
<option value="4">April</option>
<option value="5"> May</option>
<option selected="selected" value="6"> June</option>
<option value="7"> July</option>
<option value="8"> August</option>
<option value="9"> September</option>
<option value="10"> October</option>
<option value="11"> November</option>
<option value="12"> December</option>
</select>
<select name="year">
<option value="2019">2019</option>
<option selected="selected" value="2018">2018</option>
<option value="2017">2017</option>
</select>
</form>
Подскажите как блочить прокрутку без ворнингов. Большое спасибо!
Ребята, извините, это на столько тупо))
Методом тыка выяснилось что нужно выставить просто {passive: false}
тогда отдично работает e.preventDefault();
и не ругается
document.querySelector('select[name=month]')
.addEventListener('mousewheel', onmousewheel, {passive: false});
Всем большое спасибо!
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Я искал, но так и не нашел, что-то похожее на мою проблемуВопрос в том, как запускать скрипт в какой-либо промежуток времени
Как можно получить доступ к объекту функции в явном виде? Вот код:
Как работать с Amplitudejs через Ajax? Если страница загружена динамически, то инициализация не происходит