鼠标滚轮事件改变字体大小
- 滚轮事件的兼容性差异有些不拘一格,不是以往的 ie8-派
和其他派,而是 firefox 派和其他派,‘杯具’的是firefox 3.5+ 却不支持此事件,不过庆幸 firefox3.5+ 中提供了另外一个等同的事件。 - “mousewheel” 事件中的 “event.wheeldelta”属性值:返回的值,如果是正值说明滚轮是向上滚动,如果是负值说明滚轮是向下滚动;返回的值,均为 120 的倍数,即:幅度大小 = 返回的值 / 120。
- “dommousescroll” 事件中的 “event.detail”属性值:返回的值,如果是负值说明滚轮是向上滚动(与 “event.wheeldelta” 正好相反),如果是正值说明滚轮是向下滚动;返回的值,均为 3 的倍数,即:幅度大小 = 返回的值/3。
let o_div = document.querySelector('#box');
let font_size = 16;
let detail = null;
if(window.addEventListener){
window.addEventListener('DOMMouseScroll',fnSize,false);
}
window.onmousewheel = function(evt){
fnSize(evt);
}
function fnSize(evt){
let e = evt || window.event;
if(e.wheelDelta){
detail = e.wheelDelta / 120;
}else if(e.detail){
detail = - e.detail / 3;
}
if(detail > 0){
font_size ++;
}else{
font_size > 12 ? --font_size : font_size;
}
o_div.style.fontSize = font_size + 'px';
}