我被要求在我们的页面中实现ctrl+鼠标滚轮事件,以便在用户缩放时更改图像偏移量。我找到了这个旧答案Override browsers CTRL+(WHEEL)SCROLL with javascript,并尝试做同样的事情。
我下载了jQuery鼠标滚轮插件进行实现,以下是我的代码:
var isCtrl = false;
$(document).on('keydown keyup', function(e) {
if (e.which === 17) {
isCtrl = e.type === 'keydown' ? true : false;
}
}).on('mousewheel', function(e, delta) { // `delta` will be the distance that the page would have scrolled;
// might be useful for increasing the SVG size, might not
if (isCtrl) {
e.preventDefault();
alert('wheel');
}
});
这些事件单独使用时很好,但如果我按住CTRL键并滚动鼠标,滚轮事件就不会触发。 有没有更好的解决方案呢?或者我做错了什么?
event.originalEvent.wheelDelta < 0
来检测上下滚动。 - Morten Holmgaarddetail
一直都是0,所以我更改了你的代码,使用event.originalEvent.deltaY
,它将根据方向给出值-100
或100
。不确定这是否只是我的问题,但如果有人遇到同样的问题,我在此发表评论。 - Thomas DarvikdeltaY
没有定义,所以我使用了wheelDelta
来让它在IE中工作。 - Thomas Darvik