shift-scroll для горизонтальной прокрутки
с некоторым удивлением я узнал, что в некоторых программах можно использовать колёсико мыши для горизонтальной прокрутки, удерживая Shift. Очень удобная фича, которую мне немедленно захотелось иметь в своём браузере. Сейчас я использую для этого Panning, который включается кликом средней кнопки, но у него есть свои недостатки. Во-первый, он довольно медленный (или слишком быстрый, если двигать мышь неаккуратно). Во-вторых, можно случайно кликнуть по ссылке или полю ввода, и получить неожиданный результат.
к сожалению, это сочетание кнопок в браузерах уже зарезервировано под переходы вперёд/назад по истории. К ещё большему сожалению, в опере это внезапно! нельзя отключить. И, наконец, в опере это событие нельзя предотвратить яваскриптом (DSK-351368). Так что пришлось использовать Alt, что тоже неплохо. А вот и код:
document.addEventListener(
'mousewheel',
function(event){
if (!event.altKey) return;
for (
var target = event.target;
target;
target = target.parentNode)
{
if (target.scrollWidth <= target.offsetWidth) continue;
target.scrollLeft -= event.wheelDelta;
event.preventDefault();
break;
}
},
false);