以编程方式触发Firefox中的滚动

has*_*sin 5 javascript firefox

我有一个相当人为的例子,你可以滚动一个蓝色div,一个事件监听器将接受事件并将其克隆到另一个div.我想要滚动另一个div.

这个jsfiddle在chrome(版本42.0.2311.135(64位))中运行得很好.

fake.addEventListener('mousescroll', function(e) {
  var clonedEvent = new e.constructor(e.type, e);
  container.dispatchEvent(clonedEvent);
});
Run Code Online (Sandbox Code Playgroud)

但是,仅使用Firefox事件DOMMouseScroll不起作用.它抛出一个错误TypeError: Illegal constructor.

如果我手动创建一个新事件,它也不起作用.Firefox版本37.0.2.

var clonedEvent = document.createEvent("MouseEvents");
clonedEvent.initMouseEvent( ... /* data from e */);
Run Code Online (Sandbox Code Playgroud)

我已经能够捕获事件并scrollTop根据事件中的增量进行设置,但是如果您手动滚动可滚动的div,则不会使用相同的动画滚动.

如何通过JavaScript触发div的本机滚动行为?我不想使用jQuery滚动.