我正在尝试使用Javascript for移动的Safari模拟滚动事件。
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("scroll", true, true, window,0, 0, 0, 0, 0, false, false, false, false, 0, null);
上面的代码是jQuery插件jQuery.UI.Ipad的一部分,它基本上将touchstart
、touchmove
、touchend
等触摸事件Map到mouseover
、mousedown
等鼠标事件
然而,由于某些原因,模拟滚动事件的代码不工作...请帮助我。所以本质上我的问题是我如何模拟滚动事件。
5条答案
按热度按时间j9per5c41#
我想人们对你为什么要覆盖滚动控件感到困惑。我可以理解你为什么要模仿鼠标事件,但滚动可能不应该是其中之一。
通常,更改滚动条时,只需使用以下命令即可获得滚动条:
并设置:
bgibtngc2#
所以,我知道我也需要模拟它。对我来说,当你有一个带有溢出框的lightbox时,你会需要它。只是我能想到的许多例子中的一个。期待一个答案。只是想我会分享我所处的位置,你不会用jQuery.Ui。iPad我会谷歌一下. a.但这里是我到目前为止得到的,工作正常,但不完美。
再次不完美,并期待修复它..但它至少是工作.现在注意,这是一个div,使用jQuery UI滑块作为滚动条(thou在我的,它是垂直的),如所示
http://jqueryui.com/demos/slider/#side-scroll
希望这能激发一些想法。如果我得到一个超级稳定的答案,我会回来的。干杯-杰里米
qoefvg9y3#
我需要它来编写单元测试,为此我需要模拟滚动事件
有关详细信息:https://developer.mozilla.org/en-US/docs/Web/API/event.initUIEvent
pw9qyyiw4#
对我有效的事件是
mousewheel
,第5个参数需要为正才能向下滚动,为负才能向上滚动。请注意,FireFox的事件类型为
DOMMouseScroll
。fhity93d5#
现在应使用
CustomEvent
创建事件,new CustomEvent("wheel", { detail: { deltaY: 1 } })
本身。document.createEvent
已弃用https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent
我构建了一个实用函数,每帧滚动一个像素
您还需要修改事件侦听器以使用详细信息,因为
deltaY
将是未定义的