我正在使用 html / javascript / css 进行缩放功能我将一个事件侦听器
附加到我的标签上,
它可以很好地与鼠标配合使用。放大时给出 120的正倍数,否则为负数
问题在于触摸板
在放大手势时,它没有给出一致的值。有一些介于两者之间。因此,变焦非常粗糙。如何实现平滑缩放或如何使用触摸板获得一致的值wheel
div
console.log(event.wheelDelta)
console.log
-120
wheelDelta
问问题
5062 次
3 回答
7
event.wheelDelta
并非在每个浏览器中都定义,根据其 Mozilla 文档已弃用且不应再使用。您可以使用值event.deltaX
和event.deltaY
。有关详细信息,请参阅Mozilla 滚轮文档。
我在 Google Chrome 和 Mozilla Firefox 中测试了以下代码。价值观非常不同。谷歌浏览器总是返回event.deltaY
值100
or -100
。在 Mozilla Firefox 中,它总是返回值3
或-3
.
document.addEventListener('wheel', function(event) {
console.log(event.deltaX, event.deltaY);
});
我不会依赖轮值,而是听像Mozilla 滚动文档中描述的滚动事件:
var lastKnownScrollPosition = 0;
var ticking = false;
function doSomething(scrollPosition) {
console.log(scrollPosition);
}
window.addEventListener('scroll', function(e) {
lastKnownScrollPosition = window.scrollY;
if(!ticking) {
window.requestAnimationFrame(function() {
doSomething(lastKnownScrollPosition);
ticking = false;
});
}
ticking = true;
});
于 2016-08-14T14:47:13.533 回答
1
变比例 = 1; document.addEventListener("wheel",function(e){ if(e.wheelDelta>0) 比例+=0.01; 否则比例-=0.01; // 使用 Scale 变量 .... e.preventDefault(); });
于 2018-06-01T13:14:55.893 回答