你能模拟在事件触发前按下Shift键吗?

3

我希望用户可以通过正常滚动左右滑动,这可以通过按住Shift键进行滚动来实现。是否有一种方法可以在没有按下Shift键时就将事件运行,并设置"shiftKey"变量为true?


2
为什么不覆盖滚动事件并通过编程方式水平滚动页面呢? - Ashkan Pourghasem
因为本地滚动更加流畅。 - Simon Ferndriger
1个回答

1
你需要将滚动事件作为滚轮事件来捕获,因为在没有实际滚动条的情况下,滚动事件不起作用,并将滚动数据应用于滚动左位置。
var variation = 0;
    document.addEventListener("wheel", function (e) {
    variation += parseInt(e.deltaY);
    console.log(variation);
      //document.getElementById("body");
      document.documentElement.scrollLeft = document.body.scrollLeft = (variation);
    return false;

}, true);

请尝试访问我创建的jsfiddle链接 jsfiddle


这个可以工作,但是特别是在滚动图片时,与按住Shift键进行本地滚动相比,平滑度有很大的差异。是的,你可以将滚动类型设置为平滑,但是不幸的是,这仍然不同于本地滚动,特别是在快速滚动时... - Simon Ferndriger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接