为了账号安全,请及时绑定邮箱和手机立即绑定

问下script放在body里面和放在下面的区别?

如果要是像老师那样把script放在下面的话,程序顺利执行。

但是想把script放在head里面用window.onload的话,程序就报错说ScrollUp没有定义,如下面的代码:

window.onload=function(){
		var area = document.getElementById('moocBox'),
				con1 = document.getElementById('con1'),
				con2 = document.getElementById('con2');
			var time = 10;
			con2.innerHTML = con1.innerHTML;
			var timer = null;
			area.onmouseover=function(){
				timer=setInterval('scrollUp()',time);
			}
			area.onmouseout=function(){
				clearInterval(timer);
			}
			function scrollUp(){
				if (area.scrollTop >= con1.offsetHeight) {
					area.scrollTop = 0;
				} else {
					area.scrollTop++;
				}
			}
}

但是如果把scrollUp写在window.onload外面就可以了,像下面这样:

window.onload = function() {
	var area = document.getElementById('moocBox'),
		con1 = document.getElementById('con1'),
		con2 = document.getElementById('con2');
	var time = 10;
	con2.innerHTML = con1.innerHTML;
	var timer = null;
	area.onmouseover = function() {
		timer = setInterval('scrollUp()', time);
	}
	area.onmouseout = function() {
		clearInterval(timer);
	}

}

function scrollUp() {
	var area = document.getElementById('moocBox'),
		con1 = document.getElementById('con1'),
		con2 = document.getElementById('con2');
	if (area.scrollTop >= con1.offsetHeight) {
		area.scrollTop = 0;
	} else {
		area.scrollTop++;
	}
}

这是为什么?

正在回答

3 回答

onload在真个页面加载完成之后就会执行,如果将代码放在body里,在加载页面时函数已经加载。如果将代码放到head里,代码在页面加载时不会加载,直到整个页面加载完成之后才执行。此时scrollUp函数在调用处的后面。就会先报错吧。

2 回复 有任何疑惑可以回复我~
#1

Betsey 提问者

非常感谢!
2016-02-24 回复 有任何疑惑可以回复我~
#2

Evanpan

为什么按你的代码敲进去,鼠标移入就开始滚动,鼠标移出就停止呢
2016-04-07 回复 有任何疑惑可以回复我~

我也没听懂

0 回复 有任何疑惑可以回复我~

说的啥意思

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
信息滚动效果制作
  • 参与学习       47753    人
  • 解答问题       321    个

萌妹子带您快速学习滚动效果,掌握无缝滚动和歇间性滚动的制作方法

进入课程

问下script放在body里面和放在下面的区别?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信