• addEventListener以及滑轮滑动事件的应用


    addEventListener用于向元素添加事件,而其适用于较新版的IE浏览器(如IE9),对于IE6/7/8来说,应该用attachEvent

    下面的代码即为向<img>元素添加事件

    var myimage = document.getElementById("img");   
    if (myimage.addEventListener) {   
        //addEventListener适用于版本较新的IE浏览器 ,如IE9以及火狐浏览器,
        myimage.addEventListener("mousewheel", MouseWheelHandler, false);
        // Firefox浏览器使用的滚轮事件是 DOMMouseScroll
        myimage.addEventListener("DOMMouseScroll", MouseWheelHandler, false);   
    }   
    //attachEvent适用于旧的 IE浏览器,IE 6/7/8   
    else myimage.attachEvent("onmousewheel", MouseWheelHandler);  

    下面说一下addEventListener的参数,其共有三个参数:

    1:所添加的事件名称(需要注意的是,对于addEventListener所添加的事件不需要加on,而对于attachEvent需要添上on)。

    2:当第一个参数的事件发生后调用的函数。

    3:第三个参数为布尔值类型,当第三个参数设置为true就在捕获过程中执行处理函数,反之就在冒泡过程中执行处理函数。

    对于滑轮滑动事件来说,IE等浏览器所使用的事件名称是mousewheel而火狐浏览器使用的是DOMMouseScroll。

    下面的方法用于当滑轮向上向下滑动时,分别使图片放大以及缩小:

    
    

    function MouseWheelHandler(e) {
    var e = window.event;
    var delta = Math.max(-1, Math.min(1, (e.wheelDelta)));
    myimage.style.width = Math.max(727, myimage.width + (30 * delta)) + "px";
    myimage.style.height = Math.max(500, myimage.height + (30 * delta)) + "px";
    return false;
    }

    event代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。event对象只在事件发生的过程中才有效。event的某些属性只对特定的事件有意义。比如,fromElement 和 toElement 属性只对onmouseover 和 onmouseout 事件有意义;还有上面的代码中,wheelDelta只对mousewheel事件有意义。 

    判断滚轮向上或向下在浏览器中也要考虑兼容性,现在五大浏览器(IE、Opera、Safari、Firefox、Chrome)中Firefox 使用detail,其余四类使用wheelDelta;两者只在取值上不一致,代表含义一致,detail与wheelDelta只各取两个值,detail只取±3,wheelDelta只取±120,其中对于wheelDelta正数表示为向上,负数表示向下,而对于detail则相反。

  • 相关阅读:
    技术每天一点点--2020.01-2020.12月
    【置顶】历史书单--程序员的文娱情怀
    【编程书籍 大系】 计算机开放电子书汇总
    Mysql基础代码(不断完善中)
    php 基础代码大全(不断完善中)
    【读书笔记】阅读美团技术团队文章《领域驱动设计在互联网业务开发中的实践》--2020.06.25 周四 端午节
    【置顶】技术每天一点点--2020.01-2020.12
    【日常】技术每天进展--2019.06.10
    【转载】Spring学习(1)——快速入门--2019.05.19
    vs创建qt dll,并使用qt控制台测试
  • 原文地址:https://www.cnblogs.com/123456www/p/10678628.html
Copyright © 2020-2023  润新知