相关知识
鼠标事件
| 事件 | 现象 |
|---|---|
| onclick | 鼠标单击对象 |
| ondbclick | 鼠标双击对象 |
| onmouseover | 鼠标移动到对象上方 |
| onmouseover | 鼠标移出对象 |
| onmousedown | 鼠标按下 |
| onmouseup | 鼠标松开 |
使用:<··· onclick="函数或操作"> 或 Element.onclick
页面效果
初始的页面是五张背面的卡牌。
- 鼠标单击第一张卡牌,显示“黑桃J”。
- 鼠标双击第二张卡牌,显示“黑桃Q”。
- 鼠标移动到第三张卡牌上,显示“黑桃K”;鼠标移出卡牌,恢复背面。
- 鼠标单击第四张卡牌不松开,显示“黑桃A”;鼠标松开,恢复背面。
- 鼠标移动到第四张卡牌的不同位置,会显示四种不同的牌:
- 左上角——黑桃J
- 左下角——黑桃Q
- 右上角——黑桃K
- 右下角——黑桃A
代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>鼠标事件处理</title>
<!-- 导入外部css文件 -->
<link type="text/css" rel="stylesheet" href="../css/mouseEventDemo.css" />
</head>
<body>
<div id="mainDiv">
<dl>
<dt><img src="../images/mouseEventDemo/0.png" onclick="this.src='../images/mouseEventDemo/1.png'" /></dt>
<dd>单击</dd>
</dl>
<dl>
<dt><img src="../images/mouseEventDemo/0.png" ondblclick="this.src='../images/mouseEventDemo/2.png'" /></dt>
<dd>双击</dd>
</dl>
<dl>
<dt><img src="../images/mouseEventDemo/0.png" onmouseover="this.src='../images/mouseEventDemo/3.png'" onmouseout="this.src='../images/mouseEventDemo/0.png'" /></dt>
<dd>移动悬停</dd>
</dl>
<dl>
<dt><img src="../images/mouseEventDemo/0.png" onmousedown="this.src='../images/mouseEventDemo/4.png'" onmouseup="this.src='../images/mouseEventDemo/0.png'" /></dt>
<dd>按下松开</dd>
</dl>
<dl>
<dt><img id="myImage" src="../images/mouseEventDemo/0.png" onmousemove="changeImage(event)"
onmouseout="this.src='../images/mouseEventDemo/0.png'" /></dt>
<dd>鼠标移动</dd>
</dl>
</div>
<!-- 导入外部js文件 -->
<script type="text/javascript" src="../js/mouseEventDemo.js"></script>
</body>
</html>
#mainDiv{
width: 600px;
height: 200px;
}
dl{
float: left;
}
img{
width: 120px;
}
// 第五张卡牌变化
function changeImage(e) {
// IE8以下,Event对象必须作为window对象的一个属性
e = e || window.event;
// 图片容器
var myImage = document.getElementById("myImage");
// 获得鼠标到图片左侧的距离(鼠标x坐标-图片左侧离父元素的距离)
var x = e.clientX - myImage.offsetLeft;
// 获得鼠标到图片上侧的距离(鼠标y坐标-图片上部离父元素的距离)
var y = e.clientY - myImage.offsetTop;
var url = "../images/mouseEventDemo/";
// 鼠标位于左上角
if (x < myImage.width / 2 && y < myImage.height / 2)
myImage.src = url + "1.png";
// 位于左下角
else if (x < myImage.width / 2 && y > myImage.height / 2)
myImage.src = url + "2.png";
// 位于右上角
else if (x > myImage.width / 2 && y < myImage.height / 2)
myImage.src = url + "3.png";
// 位于右下角
else if (x > myImage.width / 2 && y > myImage.height / 2)
myImage.src = url + "4.png";
}