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

为什么script写在<heard></heard>标签内不可用,要放在</body>前了?之前学的不都是写在<heard></heard>标签内的吗?

信息滚动效果制作,为什么script写在<heard></heard>标签内不可用,要放在</body>前了?之前学的不都是写在<heard></heard>标签内的吗?

正在回答

4 回答

如果需要在script中操作body中的元素,那么必须在要操作的元素加载完成之后才可以,也就是说要把操作元素的js代码放在元素之后。

html是从上到下进行加载的,遇到使用连接方式加载的js或者css就发送request请求加载,如果是直接写的代码,那么就直接初始化,如果是函数那么就直接初始化,在触发时直接执行函数,如果在head中操作body中的元素,那么就会出现找不到的情况,因为此时body中的元素还没有加载完成。

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

一失手成千古恨 提问者

非常感谢!我读懂了连接和初次化。
2016-04-20 回复 有任何疑惑可以回复我~

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>无缝滚动</title>
    <style>
    *{
        margin:0px;
        padding:0px;
    }
    #bos{
        width: 500px;
        height:200px;
        border:1px solid #000;
        overflow: hidden;
    }
    #bos li{
        height: 24px;
    }
    </style>

</head>
<body>
   <div id="bos">
       <ul id="ul1">
           <li>1</li>
           <li>2</li>
           <li>3</li>
           <li>4</li>
           <li>5</li>
           <li>6</li>
           <li>7</li>
           <li>8</li>
           <li>9</li>
           <li>10</li>
       </ul>
       <ul id="ul2"></ul>
   </div>
   <script>
   var bos = document.getElementById("bos");
   var ul1 = document.getElementById("ul1");
   var ul2 = document.getElementById("ul2");
   bos.scrollTop=0;
   ul2.innerHTML=ul1.innerHTML;
   var dea = 50;
   
       setInterval("fun()", dea);
   
   function fun(){
       bos.scrollTop++;
       if(bos.scrollTop>=ul1.scrollHeight){
           bos.scrollTop=0;
       }
   }
   </script>
</body>
</html>

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

juan_zi

你在if后面加个else语句试试看。else{ bos.scrollTop++ ; }
2016-04-20 回复 有任何疑惑可以回复我~
#2

一失手成千古恨 提问者 回复 juan_zi

快了,我把上面的++给删了就好了
2016-04-20 回复 有任何疑惑可以回复我~
#3

juan_zi 回复 一失手成千古恨 提问者

嗯嗯,那就好
2016-04-20 回复 有任何疑惑可以回复我~

其实script一般都是放在body中的,因为一般网页要求加载完样式和内容后,才执行操作哦,这样有利于加载速度。如果页面html中引用到了的js函数或类,例如a标签的某个onclick,包含了这个函数的文件需要放在头部,防止js报错,脚本就停止执行了。其他的js,可以都放在尾部。

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

一失手成千古恨 提问者

后面那句没有看懂能解析下吗?
2016-04-20 回复 有任何疑惑可以回复我~
#2

一失手成千古恨 提问者

恩之前学的事件都是写在head标签内的。
2016-04-20 回复 有任何疑惑可以回复我~
#3

juan_zi 回复 一失手成千古恨 提问者

详细的解析这里有,我之前在博客园看的,解释的挺细致
2016-04-20 回复 有任何疑惑可以回复我~
#4

一失手成千古恨 提问者 回复 juan_zi

太感谢了
2016-04-20 回复 有任何疑惑可以回复我~
#5

juan_zi 回复 一失手成千古恨 提问者

没事,嘿嘿
2016-04-20 回复 有任何疑惑可以回复我~
查看3条回复

head,不是heard,    script放在哪里都是可以的

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

一失手成千古恨 提问者

那为什么放在head上就不可用放在</body>前就可以用了?能解析下吗?
2016-04-17 回复 有任何疑惑可以回复我~
#2

hhhs1s1s

放哪都可以用。。。。你把代码贴出来,我给你找毛病
2016-04-17 回复 有任何疑惑可以回复我~
#3

一失手成千古恨 提问者 回复 hhhs1s1s

代码给出来了
2016-04-20 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

为什么script写在<heard></heard>标签内不可用,要放在</body>前了?之前学的不都是写在<heard></heard>标签内的吗?

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