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

为什么js部分放在head里的话就报错,放在body里就可以?

<script>

window.onload=function(){

var con1=document.getElementById("con1");

var con2=document.getElementById("con2");

var are=document.getElementById("big");

                var speed = 50;

                 are.scrollTop = 0;

                 con2.innerHTML = con1.innerHTML;

                 function scrollUp(){

            if(are.scrollTop >= con1.scrollHeight) {

        are.scrollTop = 0;

         }else{

              are.scrollTop ++; 

        } 

                    }

                 var myScroll = setInterval("scrollUp()",speed);

               are.onmouseover = function(){

               clearInterval(myScroll);

               }

               are.onmouseout = function(){

                  myScroll = setInterval("scrollUp()",speed);

                }

</script>

这是放在head里的代码,显示scrollUp未定义。

另外,在head中用window.onload和js放在body最后有什么具体区别?

正在回答

2 回答

因为读取的时候是从头读到尾的,js放在head的时候,里面定义的获取的一些属性还没有被读取到,所以js一般最好放在body的最下面。

1、

window.onload=function(){

var con1=document.getElementById("con1");

var con2=document.getElementById("con2");

var are=document.getElementById("big");

                var speed = 50;

                 are.scrollTop = 0;

                 con2.innerHTML = con1.innerHTML;

                 function scrollUp(){

            if(are.scrollTop >= con1.scrollHeight) {

        are.scrollTop = 0;

         }else{

              are.scrollTop ++; 

        } 

                    }

这一部分代码有onload,所以没问题;

2、

 var myScroll = setInterval("scrollUp()",speed);

               are.onmouseover = function(){

               clearInterval(myScroll);

               }

               are.onmouseout = function(){

                  myScroll = setInterval("scrollUp()",speed);

                }

这一段代码你写在了onload外,所以放在head区时会在body加载之前执行,因此就缺少变量,显示未定义了

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

因为读取的时候是从头读到尾的,js放在head的时候,里面定义的获取的一些属性还没有被读取到,所以js一般最好放在body的最下面,我都是这么做的

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

慕田峪6924496 提问者

window.onload的意思不是等待页面完全加载后才执行js代码吗?那和js放在body的最下面有什么区别?
2016-08-14 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

为什么js部分放在head里的话就报错,放在body里就可以?

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