zoukankan      html  css  js  c++  java
  • 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则相反。

  • 相关阅读:
    SXOI2016 部分解题报告
    两道FFT的应用题
    [CQOI2012]交换棋子【网络流】【费用流】
    JAVA-SDK-Excel4j使用遇见的问题
    解决Zookeeper出现Error: Could not find or load main class org.apache.zookeeper.server.quorum.QuorumPeerMain问题
    maven项目打包时jar中不包含依赖
    CentOS_7中的zookeeper安装
    SpringBoot集成Redis出现WRONGTYPE Operation against a key holding the wrong kind of value错误
    主机访问虚拟机中Redis
    使用SpringS声明式的开启事务
  • 原文地址:https://www.cnblogs.com/123456www/p/10678628.html
Copyright © 2011-2022 走看看