移动图标(move)
<style type="text/css">
#img1 {
position: absolute;
top: 0px;
left: 0px;
}
</style>
</head>
<body onkeydown="move(event)">
<img id="img1" src="../云购一号/img3/切图/download_iphone_selected.png" alt="">
</body>
<script type="text/javascript">
var top1 = 0;
var left = 0;
function move(e) {
switch (e.keyCode) {
case 37:
left -= 5;
break;
case 38:
top1 -= 5;
break;
case 39:
left += 5;
break;
case 40:
top1 += 5;
break;
}
var img1 = document.getElementById("img1");
img1.style.top = top1 + "px";
img1.style.left = left + "px";
- 如果把top1改成top, 就会导致上下移动失败,这是因为window.top这个全局变量冲突了,换一个变量名就好了
- 如果把top1和left移入函数中,发现只能移动5像素,原因是函数内部的局部变量在每次调用函数时都会重新创建并初始化,也就是说每一次调用left和top1的值都是零,不会保留上一次的值,如果需要保留,就只能使用全局变量!
其他的事件
onload:页面加载事件
onfocus:获得焦点事件
onblur:失去焦点事件
onchange:值改变事件
事件的注册
三种方法
一、使用onxxx属性,例如οnclick=”fun()“
二、通过js设置元素的xxx
三、通过addEventListener注册
后两种方法的好处:
将页面的内容,样式,行为分类,内容和样式可能是美工人员去完成
行为(也就是js内容),往往是程序员的事,分离有利于分工
第三种方式addEventListener(添加事件监听),他的第一个参数事件名,第二个参数是事件的处理函数
捕获和冒泡
在这个案例中,冒泡是从内而外,先文字在div,而冒泡则相反