我可以用javascript模拟鼠标滚轮上下移动吗

我可以用javascript模拟鼠标滚轮上下移动吗,javascript,mouseevent,zooming,mousewheel,Javascript,Mouseevent,Zooming,Mousewheel,我有一个web应用程序,其中有一个沉浸式视图。在这个视图中,我可以使用鼠标滚轮操作放大或缩小 我想做的是创建两个按钮,它们调用javascript函数并模拟鼠标滚轮动作。 我试过: window.scrollTo(0,300); 但在我的例子中,滚动并没有缩放(似乎只有鼠标滚轮动作起作用) 你知道吗,我如何在javascript中模拟鼠标滚轮的上下运动 谢谢您可以使用JQuery中的$.animate()。下面是一个例子: $('html, body').animate({ scrollT

我有一个web应用程序,其中有一个沉浸式视图。在这个视图中,我可以使用鼠标滚轮操作放大或缩小

我想做的是创建两个按钮,它们调用javascript函数并模拟鼠标滚轮动作。 我试过:

window.scrollTo(0,300);
但在我的例子中,滚动并没有缩放(似乎只有鼠标滚轮动作起作用)

你知道吗,我如何在javascript中模拟鼠标滚轮的上下运动


谢谢

您可以使用JQuery中的
$.animate()
。下面是一个例子:

$('html, body').animate({
  scrollTop: target.offset().top
}, 1000, function() {
   // Do something when animation is complete
});
其中
target
可以是您想要滚动到的任何DOM元素,也可以是确定滚动长度的数字


您应该查看有关此方法的更多信息。

因此,经过一些研究后,我解决了我的问题

以下是我所做的:

我创建了一个鼠标事件并将其传递给滚轮事件

var evt = document.createEvent('MouseEvents');
evt.initEvent('wheel', true, true); 
然后,我可以设置deltaY,这取决于您是想让车轮升起还是放下

evt.deltaY = +120;
// evt.deltaY = -120
您可以通过这样做将此事件传递给元素:

element.dispatchEvent(evt);

这不起作用,滚动动画不会在我的视图上缩放。我想我应该创建一个mousewheelevent并设置wheelDeltaY或类似的东西that@Sambo好的,我刚刚看到你想要用鼠标滚动来放大,但是在你的问题中你显示了滚动的代码;这就是为什么它令人困惑。谢谢,我刚刚找到了解决我问题的方法。所以我创建了一个mouseevent var evt=document.createEvent('MouseEvents');evt.initEvent('wheel',true,true);if(direction=='in'){evt.deltaY=-120;}else{evt.deltaY=120;},然后将其与element.dispatchEvent(evt)一起传递给my元素;好极了!回答您自己的问题,以便存储这些信息,以备将来的问题使用。这在Chrome版本49之前(2016年4月)都适用。现在这只是一个轶事。