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

去掉startScroll()里的area.scrollTop++就不行!

为什么去掉startScroll里的area.scrollTop++不行?scrollUp里不是有area.scrollTop++了吗?Interval一直循环的是scrollUp里的area.scrollTop++呀

正在回答

3 回答

var area = document.getElementById("moocBox");

var speed = 50,timer = null,delay = 2000;

LiHeight = 24;

area.innerHTML +=area.innerHTML;

function scrollTopPlus(){

area.scrollTop++;

if(area.scrollTop%LiHeight == 0){

clearInterval(timer);

setTimeout("timer = setInterval(scrollTopPlus,speed)",delay);

}

if(area.scrollTop >= area.scrollHeight/2){

area.scrollTop = 0;

}

}

timer = setInterval(scrollTopPlus,speed);

简单明了

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

请看一下我的备注, 这个问题我仔细钻了一下午,搞明白了, 有不懂的再问我

 var delay=1000;

 var speed=10; //滚动速度 

 var iliHeight=24; //li的单行高度

 con2.innerHTML=con1.innerHTML;

 area.scrollTop=0;   //如果area.scrollTop=1, 那么一开始,area.scrollTop%ili==0 程序不会向下走,为什么教程里面的讲师程序却可以?

 //解答: 因为在startScroll()里面, 有个area.scrollTop++; 它会在var myScroll=setInterval(scrollUp,speed); 运行的时候也跟着运行一次,所以area.scrollTop就为1了。

 

 function startScroll(){

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

area.scrollTop++; // 重要,不能删除,原因: 在area.scrollTop=ali高度的倍数以后,执行start(), 

// 让area.scrollTop自加1,这样area.scrollTop % iliHeight==0就不成立,继续向上滚动

如果不添加area.scrollTop++; 那么滚动一次以后, area.scrollTop=24;   这个值会一直保持不变

}


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

零可以被任何数整除,0对iLiHeight取余结果是0,进入if语句,定时器被清除,两秒后重新开始又是这样循环,永远动不了。

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

举报

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

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

进入课程

去掉startScroll()里的area.scrollTop++就不行!

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