<body>
<marquee id="container" behavior="alternate" scrollamount="1"
direction="up" bgcolor="pink" width="300" height="400"> 加速世界
</marquee>
<script type="text/javascript">
var i = 1;
var t = true;
document.onkeydown = function(event) {
var e = event || window.event
|| arguments.callee.caller.arguments[0];
if (e && e.keyCode == 37) { // 按 left arrow
t = false;
}
if (e && e.keyCode == 39) { // 按 right arrow
t = true;
}
if (t == false) {
i = i - 1;
} else {
i = i + 1;
}
if(i < 0){ //速度最低为0
i = 0;
}
document.getElementById("container")
.setAttribute("scrollamount", i); //修改滚动速度
};
</script>
</body>var e = event || window.event || arguments.callee.caller.arguments[0]; e为什么要这样定义?又是什么意思?if (e && e.keyCode == 37) 我试了不加e也可以运行,那为什么要加e呢?
3 回答
啊呆_2
TA贡献5条经验 获得超5个赞
第一个问题:这样定义是为了浏览器的兼容,此时的e是事件对象。
第二个问题:我猜是为了更好的运行性能,如果事件对象e不存在,直接返回false,不必再去判断到底按下了哪个键。如果存在事件对象e,再去判断哪个键被按下才是有意义的。
添加回答
举报
0/150
提交
取消