Событие, связанное на уровне документа (window.document, window.document.body или window), рассматривается как пассивное и не может быть предотвращено.Вы должны указать, что событие не является пассивным, если { passive: false }
является третьим параметром вашей функции addEventListener
.См. эту ссылку для получения дополнительной информации.
В вашем случае:
document.addEventListener('wheel', function(e) {
e.preventDefault();
e.stopPropagation();
if (e.ctrlKey) {
var s = Math.exp(-e.deltaY / 100);
scale *= s;
} else {
var direction = 1; //natural.checked ? -1 : 1;
tx += e.deltaX * direction;
ty += e.deltaY * direction;
}
var transform = 'translate(' + tx + 'px, ' + ty + 'px) scale(' + scale + ')';
box.style.webkitTransform = transform;
box.style.transform = transform;
}, {
passive: false // Add this
});
Более того, он не будет работать на codepen из-за использования iframe в качестве событияпривязывается к iframe, а не к самой странице codepen.