Ci sono molte difficoltà in una domanda come questa. In sostanza, ci sono due fasi:
- Ascoltate le
keydown
e keyup
eventi, e tenere traccia di quando Ctrl è giù
- Ascolta per la rotellina del mouse, e (se Ctrl è giù) fare ciò che si vuole
Ma qui ci sono i problemi che devi affrontare:
- Come applicherete i listener/handler dell'evento?
- According to QuirksMode, i browser su Mac non restituiscono un codice di accesso esatto per Ctrl.
- Also according to QuirksMode, Firefox non supporta l'evento
mousewheel
. Dovrai invece usare DOMMouseScroll
.
- According to the MDC, ci sono alcuni casi in cui l'evento
DOMMouseScroll
, se utilizzato con Ctrl, non viene mai nemmeno sparato!
Non sto dicendo che sono insormontabili, o anche che sono grossi problemi. L'utilizzo di una buona libreria JavaScript dovrebbe allontanare la maggior parte di essi, se non tutti. Essere selettivo nella scelta dei browser/sistemi operativi da supportare aiuterà anche un bel po ', se è fattibile.
Se dovessi farlo con jQuery (e a jQuery mousewheel plugin), che sarebbe simile a questa:
(function ($) {
var isCtrl = false;
function ctrlCheck(e) {
if (e.which === 17) {
isCtrl = e.type === 'keydown' ? true : false;
}
}
function wheelCheck(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();
yourResizeMethod(delta);
}
}
$(document).
keydown(ctrlCheck).
keyup(ctrlCheck).
mousewheel(wheelCheck);
}(jQuery));