js中关于鼠标操作等事件

什么是事件:指用户在某事务上由于某种行为所执行的操作

要素:事件源(指哪个元素引发的事件);事件:(执行的动作);驱动程序:即执行的结果.

事件的绑定:

1、行内事件绑定函数

定义事件函数

•在元素的事件上调用函数

•此方式一个事件只能绑定一个函数

<button onclick="toPage()"></button>

<script type="text/javascript">

function toPage(){

  location.href= "index.html";

}

</script>

2、在脚本中绑定函数

定义事件函数

•获取元素

•元素的事件绑定函数的引用

•此方式一个事件可以绑定多个函数,但后面的绑定函数会覆盖前面的函数

<button id =“topage”></button>

<script type="text/javascript">

function toPage(){

  location.href= "index.html";

}

var btn = document.getElementById("topage");

btn.onclick = topage;

</script>

3、脚本中绑定匿名函数

<button id =“topage”></button>

<script type="text/javascript">

var btn = document.getElementById("topage");

btn.onclick = function (){

  location.href= "index.html";

}

</script>

4、脚本中绑定匿名函数传递参数

function toPage(){

  location.href= "index.html";

}

var btn = document.getElementById("topage");

btn.onclick = function(){ topage(传参);}

<button id =“topage”></button>

<script type="text/javascript">

var btn = document.getElementById("topage");

btn.onclick = function (){

  location.href= "index.html";

}

</script>

5、用 addEventListener() 来绑定事件监听函数

addEventListener语法

elementObject.addEventListener(eventName,handle,useCapture);

其中elementObject:DOM对象(即DOM元素)。

  eventName:事件名称。注意,这里的事件名称没有“ on ”,如鼠标单击事件 click ,鼠标双击事件 doubleclick ,鼠标移入事件 mouseover,鼠标移出事件 mouseout 等。

  handle:事件句柄函数,即用来处理事件的函数。

  useCapture:控制事件触发顺序是否为事件捕获。true,事件捕获;false,事件冒泡

<button id =“topage”></button>

<script type="text/javascript">

function toPage(){

  location.href= "index.html";

}

var btn = document.getElementById("topage");

btn.addEventListener("click",topage);

</script>

特点:

1、行内绑定:绑定函数是唯一的,可以在调用的时候传入参数,但参数是固定的值,不建议使用

2、在脚本中使用onxxxx绑定函数:可以绑定多个函数,但是后面绑定的函数会替换掉前面的函数,最终只会执行最后一个,直接给引用的方式不能传参,如果要传参必须使用匿名函数,在匿名函数中调用事件的函数并传参。

3、使用addEventListener:可以绑定多个函数,并且多个函数依次执行,如果要传参,则与2的方式相同

DOM常用事件:

事件

描述

onblur

元素失去焦点

onfocus

元素获得焦点

onclick

鼠标点击某个对象

ondblclick

鼠标双击某个对象

onmousedown

某个鼠标按键被按下

onmouseup

某个鼠标按键被松开

onmouseover

鼠标被移到某元素之上

onmousemove

鼠标被移动

onmouseout

鼠标从某元素移开

onkeydown

某个键盘的键被按下

onkeypress

某个键盘的键被按下或按住

onkeyup

某个键盘的键被松开

onload

某个页面或图像被完成加载

页面加载事件

•当用户进入页面,所有内容(包括图像、脚本文件、CSS 文件等)被完全加载后就会触发 onload事件

•onload 事件常用来检测访问者的浏览器类型和版本,初始化全局变量等。

第一种方法,不建议使用

<script type="text/javascript">

function init(){

  //初始化

}

</script>

<body onload=“ init ()">

</body>

建议使用这种方法

<script type="text/javascript">

window.onload = function(){

//初始化

}

</script>

<body>

</body>

鼠标移动事件

•鼠标移动事件包括鼠标移入、移出、和滑动事件

• 移入: onmouseover

•移出: onmouseout

•移动: onmousemove

<img onmousemove="move()" onmouseover="over()" onmouseout="out()" src="img/logo108.png"/>

<script type="text/javascript">

function over(){

console.log("你的鼠标在图片上");

}

function out(){

console.log("你的鼠标已离开图片");

}

function move(){

console.log("你的鼠标在图片中移动");

}

</script>

鼠标位置的获取

•鼠标的位置可以通过事件对象获取

•要获取事件对象,必须在事件函数中定义形参,在调用函数时传入”event”对象

<!--调用函数时传事件对象event-->

<img onmouseover="over(event)" src="img/logo108.png"/>

<script type="text/javascript">

function over(e){//定义接收事件的变量

  console.log(e);

}

</script>

属性名

描述

clientX/clientY

事件发生的时候,鼠标相对于浏览器窗口可视文档区域的左上角的位置;(在DOM标准中,这两个属性值都不考虑文档的滚动情况,也就是说,无论文档滚动到哪里,只要事件发生在窗口左上角,clientX和clientY都是 0,所以在IE中,要想得到事件发生的坐标相对于文档开头的位置,要加上)document.body.scrollLeft和 document.body.scrollTop)

offsetX,offsetY

事件发生的时候,鼠标相对于源元素左上角的位置;

pageX,pageY

检索相对于父元素鼠标水平坐标的整数;

screenX、screenY

鼠标指针相对于显示器左上角的位置,如果你想打开新的窗口,

这两个属性很重要;

<span style="height:600px;display: inline-block;"></span>

<img  onmouseover="over(event)" src="img/logo108.png"/>

<script type="text/javascript">

function over(e){//定义接收事件的变量

console.log("e.clientY=" + e.clientY);//相对于浏览器可视区域的位置

console.log("e.pageY=" + e.pageY);//clientY + 滚动距离

console.log("e.screenY=" + e.screenY);//鼠标相对屏幕的位置

console.log("e.offsetY=" + e.offsetY);//相对元素的位置

//console.log(document.documentElement.scrollTop);//滚动距离

}

</script>

猜你喜欢

转载自www.cnblogs.com/SweeneyHuo/p/9333751.html