ОБНОВЛЕНИЕ (август 2016 г.). Похоже, что реализации браузера изменились, и больше невозможно повторно отправить WheelEvent для другой цели.Смотрите обсуждение здесь .
. Для альтернативного решения, которое должно работать на разных платформах, попробуйте следующее:
var target = $('#container').get(0);
$('#fixed').on('wheel', function (e) {
var o = e.originalEvent;
target.scrollTop += o.deltaY;
target.scrollLeft += o.deltaX;
});
Рабочий пример: https://gist.run/?id=6a8830cb3b0564e7b16a4f31a9405386
Оригинальный ответ ниже:
Собственно, лучший способ сделать это - скопировать оригинальное событие.Я пробовал код @ Tuokakouan, но прокрутка ведет себя странно (слишком быстро), когда мы используем сенсорную панель мультитач с инерцией.Вот мой код:
var target = $('#container').get(0);
$('#fixed').on('wheel', function(e){
var newEvent = new WheelEvent(e.originalEvent.type, e.originalEvent);
target.dispatchEvent(newEvent);
});
Вы можете попробовать это здесь: http://jsfiddle.net/NIXin/t2expL6u/1/
То, что я пытаюсь сделать сейчас, это также передать сенсорные события, но без особого успеха.Поскольку мобильные телефоны и сенсорные экраны в настоящее время более популярны, некоторые люди, возможно, захотят прокручивать их пальцами - ни один из предложенных ответов не решает этого.