js鼠标事件有哪些

js鼠标事件有哪些,第1张

js 鼠标事件详细

常用的几个类型

onClick

HTML: 2 | 3 | 32 | 4

Browser: IE3 | N2 | O3 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击

onDblClick

HTML: 2 | 3 | 32 | 4

Browser: IE4 | N4 | O 鼠标双击事件

onMouseDown

HTML: 2 | 3 | 32 | 4

Browser: IE4 | N4 | O 鼠标上的按钮被按下了

onMouseUp

HTML: 2 | 3 | 32 | 4

Browser: IE4 | N4 | O 鼠标按下后,松开时激发的事件

onMouseOver

HTML: 2 | 3 | 32 | 4

Browser: IE3 | N2 | O3 当鼠标移动到某对象范围的上方时触发的事件

onMouseMove

HTML: 2 | 3 | 32 | 4

Browser: IE4 | N4 | O 鼠标移动时触发的事件

onMouseOut

HTML: 2 | 3 | 32 | 4

Browser: IE4 | N3 | O3 当鼠标离开某对象范围时触发的事件

若想检测鼠标左键、右键点击事件可以用

事件button 值来检测

例如

documentonMouseDown =function(ev){

var oEvent = ev||event;

alert(oEventbutton);

}

此时button= 0、1、2分别对应于 鼠标左中右

在DOM中。因为会有嵌套结构,因此如果鼠标指针父DIV移动到内部的子DIV上,会触发mouseout事件,这并不是bug或者什么歧义,因为mouseout的意思就是从一个元素移动到另一个元素上。并没有说另一个元素就不能是当前元素的子元素。但你的要求依然是可以实现的。就是利用事件冒泡。例如:

html中。

<html>

<head lang="en">

    <meta charset="UTF-8">

</head>

<body style="padding:0;margin:0">

<div id="sDiv" style="height:500px;background:black;padding:1px">

<div id="cDiv" style="height:100px;margin:200px;background:red"></div>

</div>

</body>

<script>

js这样写:

windowonload = function(){

    documentgetElementById('sDiv')onmouseout = function(e){

        var ev = e || windowevent;

        var target = evtarget || evsrcElement;

        if(targetid === 'sDiv' && (!evtoElement || evtoElementid !== 'cDiv')){

            alert('鼠标移动出了父DIV元素。');

        }

    }

}

说白了。就是如果是移动到子元素中,不认为是移出父元素就好了,因此更加通用的写法如下:

function isParent (obj,parentObj){ 

while (obj != undefined && obj != null && objtagNametoUpperCase() != 'BODY'){ 

    if (obj == parentObj){ 

        return true; 

    } 

    obj = objparentNode; 

return false; 

windowonload = function(){

documentgetElementById('sDiv')onmouseout = function(e){

    var ev = e || windowevent;

    var target = evtarget || evsrcElement;

    if(targetid === 'sDiv' && (!evtoElement || !isParent(evtoElement, target))){

        alert('鼠标移动出了父DIV元素。');

    }

}

}

思路:

1获取当前鼠标的坐标,并取当前时间

2监听mousemove事件,一旦移动,重新获取坐标和当前时间

3将事件前后的时间相减所得的时间差和每次的坐标点记录下来,就可以知道每个坐标停留了多久。

可以按以下思路步骤来实现:

1、声明一个变量(如el),用来存放鼠标所在的元素节点。

2、在body元素上增加一个鼠标事件监听

3、使用事件对象中的target属性,每当鼠标经过一个元素时,就把它赋值给el变量

任何时候,读取el变量的值即为鼠标当前所在的元素。

示例代码:

var el = windowdocumentbody;//声明一个变量,默认值为body

windowdocumentbodyonmouseover = function(event){

  el = eventtarget;//鼠标每经过一个元素,就把该元素赋值给变量el

  consolelog('当前鼠标在', el, '元素上');//在控制台中打印该变量

}

通过js 跨浏览器获取鼠标按键的值的方法

documentonmousedown = function( e ){

alert(getButton(e)) // ebutton W3C是获取鼠标按键 0 表示左键 1表示中键 2表示右键

而IE浏览器则是 1表示左键 4表示中间 2表示右键 这里的IE浏览器主要是IE8以下的浏览器

};

function getButton(e){

/

1、windowevent这个属性IE和Chrome都是支持的

2、但是Chrome也是支持W3C的

3、所以,如果说W3C和IE都支持的话,那么就已W3C做为标准化

/

if( e ){ // 作为第一次判断Chrome 就以W3C为标准了,去年远标java就说到这个问题。

return ebutton;

}else if( windowevent ){

switch( windoweventbutton ){

case 1 : return 0; // 返回鼠标左键的值

case 4 : return 1; // 返回鼠标中键的值

case 2 : return 2; // 返回鼠标右键的值

case 0 : return 2; // 返回鼠标右键的值 主要是360浏览器会返回了 在IE浏览器中

返回的0是代表没有按下鼠标键的时候所返回来的值

};

};

};

以上就是关于js鼠标事件有哪些全部的内容,包括:js鼠标事件有哪些、关于页面JS 鼠标触发事件的问题、有没有JS代码是用来获取鼠标停留在某个点的时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9613849.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存