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

关于代码不执行的问题

我测试发现当js脚本放在div上方,没有效果,放在最下放才会有滚动效果,这是为什么呢?

正在回答

2 回答

从上到下执行的,js放div上获取不到div,可以加window.onload

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

qq_不净莲华_03851634 提问者

我用了外部引入的方式<script src...>的方式,也用了.window.onload事件,也是没有用的,这是怎么一回事?
2017-02-08 回复 有任何疑惑可以回复我~
#2

慕码人1478975 回复 qq_不净莲华_03851634 提问者

贴代码看看
2017-02-08 回复 有任何疑惑可以回复我~
#3

qq_不净莲华_03851634 提问者 回复 慕码人1478975

<script type='text/javascript' src='js/scroll.js'></script> window.onload=function() { var area=document.getElementById('mainBox'); var time=50; area.scrollTop=0; setInterval('area.scrollTop++',time); } 由于回复字数限制只贴了部分代码,你看看
2017-02-09 回复 有任何疑惑可以回复我~
#4

慕码人1478975 回复 qq_不净莲华_03851634 提问者

setInterval中的代码必须在全局作用域能访问到,你这里的area是局部的,所以执行不了。
2017-02-09 回复 有任何疑惑可以回复我~
#5

qq_不净莲华_03851634 提问者 回复 慕码人1478975

这里不算是闭包吗?内部函数能访问到外面的变量?
2017-02-10 回复 有任何疑惑可以回复我~
#6

qq_不净莲华_03851634 提问者

非常感谢!共勉
2017-02-10 回复 有任何疑惑可以回复我~
#7

qq_不净莲华_03851634 提问者 回复 慕码人1478975

百度了一下,明白了,原来setInterval第一个参数是在引号内的话,它会自动调用eval()函数,这个函数是全局的而不能访问eare这个局部变量,只需要将area.scrollTop++改成一个函数即可多谢了
2017-02-10 回复 有任何疑惑可以回复我~
查看4条回复

太棒了,就是这个原因,我说搞了半天都找不到哪里冲突呢,非常感谢!Idid

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

举报

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

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

进入课程

关于代码不执行的问题

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