| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1442 人关注过本帖
标题:JavaScript无限循环
只看楼主 加入收藏
lovemm
Rank: 2
来 自:广州
等 级:论坛游民
威 望:1
帖 子:170
专家分:24
注 册:2008-11-4
结帖率:71.43%
收藏
已结贴  问题点数:10 回复次数:5 
JavaScript无限循环
            <div id=demo style="overflow:hidden; width:350px; height:180px;">
               <div id=demo1>
                 <li><a href="#">打什么东西既不花力气又很舒服?</a></li>
                 <li><a href="#">打什么东西既不花力气又很舒服?</a></li>
                 <li><a href="#">打什么东西既不花力气又很舒服?</a></li>
                 <li><a href="#">打什么东西既不花力气又很舒服?</a></li>
                 <li><a href="#">打什么东西既不花力气又很舒服?</a></li>
                 <li><a href="#">打什么东西既不花力气又很舒服?</a></li>
                 <li><a href="#">打什么东西既不花力气又很舒服?</a></li>
                 <li><a href="#">打什么东西服?</a></li>
               </div>
             <div id=demo2></div>
             </div>
<script language="javascript">
var speed=10
demo2.innerHTML=demo1.innerHTML
function Marquee(){
if(demo2.offsetTop-demo.scrollTop<=0)
demo.scrollTop-=demo1.offsetHeight
else{
demo.scrollTop++
}
}
var MyMar=setInterval(Marquee,speed)
demo.onmouseover=function() {clearInterval(MyMar)}
demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}
</script>

想用这代码实现无限循环的,但却实现不到,请问高手们指教指教是哪里错了
搜索更多相关主题的帖子: JavaScript 
2010-04-05 19:31
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:8 
试试,要达到效果,需要将demo的height设置成demo1.scrollHeight:
            <div id=demo style="overflow:hidden; width:350px; height:144px;">  
               <div id=demo1>
                 <li><a href="#">打什么东西既不花?</a></li>
                 <li><a href="#">打什么东西既不花力?</a></li>
                 <li><a href="#">打什么东西既不花力气?</a></li>
                 <li><a href="#">打什么东西既不花力气又?</a></li>
                 <li><a href="#">打什么东西既不花力气又很?</a></li>
                 <li><a href="#">打什么东西既不花力气又很舒?</a></li>
                 <li><a href="#">打什么东西既不花力气又很舒服?</a></li>
                 <li><a href="#">打什么东西服?</a></li>
               </div>
             <div id=demo2></div>
              </div>
<script language="javascript">
var speed=10
var height=demo1.scrollHeight
demo2.innerHTML=demo1.innerHTML
function Marquee(){
if (demo.scrollTop>=height){
demo.scrollTop=0
}
else{
demo.scrollTop++
}
}
var MyMar=setInterval(Marquee,speed)
demo.onmouseover=function() {clearInterval(MyMar)}
demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}
</script>

★★★★★为人民服务★★★★★
2010-04-06 16:15
lovemm
Rank: 2
来 自:广州
等 级:论坛游民
威 望:1
帖 子:170
专家分:24
注 册:2008-11-4
收藏
得分:0 
可以啦,那是什么原理啊,为什么我这样写就不可以啊
2010-04-06 17:35
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:2 
回复 3楼 lovemm
因为:if(demo2.offsetTop-demo.scrollTop<=0) 中条件永远不会为真,demo.scrollTop在增大到一定程度(此时demo2.offsetTop-demo.scrollTop>0)就到了最大值,即demo.scrollTop++不会再增加demo.scrollTop的值了。

★★★★★为人民服务★★★★★
2010-04-07 07:52
lovemm
Rank: 2
来 自:广州
等 级:论坛游民
威 望:1
帖 子:170
专家分:24
注 册:2008-11-4
收藏
得分:0 
scrollHeight和scrollTop和offsetTop,offsetHeight 是什麼意思啊,上網搜了還是不懂他的意思
2010-04-07 09:58
努力加油
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:34
专家分:127
注 册:2010-4-11
收藏
得分:0 
回复 5楼 lovemm
图片附件: 游客没有浏览图片的权限,请 登录注册
2010-04-13 22:11
快速回复:JavaScript无限循环
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.063717 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved