大家谁看懂js循环滚动新闻了, 搞了一个上午还是不懂这句话( if(demo2.offsetTop-demo.scrollTop

时间:2023-01-04 12:18:18
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离

offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置 

<div id=demo style=overflow:hidden;height:100;width:90;background:#214984;color:#ffffff><div id=demo1>
 <img src="images/flash8.gif">
 <img src="images/link/flashempire.gif">
 <img src="images/linklogo/shlogo.gif">
 <img src="images/link/deskcity.gif">
 <img src="images/linklogo/5dmeng.gif">
 <img src="/Upload/2004_Pack/logo.gif">
 <img src="images/link/flashskylogo.gif">
 <img src="images/link/5dlogo88.gif">
 <img src="/Upload/2004_Pack/link.gif">
 </div>
 <div id=demo2></div>
 </div>
   <script>
   var speed=30
   demo2.innerHTML=demo1.innerHTML file://克隆demo1为demo2
   function Marquee(){
   =======================这句话是什么意思了==========================
    demo2.offsetTop 这个是demo2距离demo1底端的距离吗
    demo.scrollTop  这个代表容器滚动的多少
    为啥 demo2.offsetTop(距离)-demo.scrollTop(容器滚动的多少)<=0 就是滚动至demo1与demo2交界时

   if(demo2.offsetTop-demo.scrollTop<=0) file://当滚动至demo1与demo2交界时
   ===================================================================
   demo.scrollTop-=demo1.offsetHeight  file://demo跳到最顶端
   else{
   demo.scrollTop++
   }
   }
   var MyMar=setInterval(Marquee,speed) file://设置定时器
   demo.onmouseover=function() {clearInterval(MyMar)}//鼠标移上时清除定时器达到滚动停止的目的
   demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}//鼠标移开时重设定时器
   </script>

14 个解决方案

#1


-d:)

#2


大家谁知道了,谢谢告我一下

#3


这代码我也用,你要做什么吗?
这个是移动div的位置,当demo2位置完全移到demo1的位置时,这是demo的位置已经变了,跟随demo1的位置滚动了
这是要使demo回到他原来的位置,就比如减去demo1的高度
就这样不断的循环变换!

#4


demo1.offsetTop <= demo.scrollTop

其实就是这样
应该明白了吧

#5


谢谢各位了,说实在楼上的我还是不太懂!

scrollTop是滚动的距离,那offsetTop到底是啥了,概念太难理解了

demo2.offsetTop   这个是demo2距离demo1底端的距离,还是其他了 
demo.scrollTop     这个代表容器滚动的多少吗 
if(demo2.offsetTop-demo.scrollTop <=0)  //当滚动至demo1与demo2交界时
为什么是距离减去滚动高度呢?

#6


汗!我说得那么明白
竟然还不理解!

#7


if(demo2.offsetTop-demo.scrollTop   <=0)     //当滚动至demo1与demo2交界时 
为什么是距离减去滚动高度呢? 
意思是demo2位置逐渐移到demo1的原来位置

#8


谢谢你了,那offsetTop到底是啥了

#9


还是自己漫漫想想把!

#10


 1.scrollTop   对象最顶端和窗口中可见内容的最顶端之间的距离 
2.offsetTop   相对于版面或由   offset   parent   属性指定的父坐标的计算顶端位置 
 

#11


不用想,你查下相关手册就明白了

#12


http://blog.csdn.net/chinmo/archive/2008/02/18/2102799.aspx
要不你就来我博客看看!

#13


demo2.offsetTop 是指demo2层的顶端与包含demo2的层demo的距离.这是个只读属性.这里就等于demo1层的高度.
demo.scrollTop  表示层流动的时候,流动的多少.一开始是0,流动块下移,该值就增加.


/*
 现在demo2和demo1是两个一模一样的层.
 demo2.offsetTop一直等于demo1.offsetHeight  而deom.scrollTop一开始等于0
 所以一直是执行else中的demo.scrollTop++ 也就是不停地往上流动.
 demo.scrollTop不停增加,最后小于或等于offsetTop时,让demo.scrollTop重新回到开始.
 所以我觉得当<=0时直接deom.scrollTop = 0 也一样.
*/
 if(demo2.offsetTop-demo.scrollTop <=0){   
     demo.scrollTop-=demo1.offsetHeight;     
 }
 else{
     demo.scrollTop++;
 }

#14


我也刚刚碰到这些
if(demo2.offsetTop-demo.scrollTop
demo.scrollTop-=demo1.offsetHeight
else{
demo.scrollTop++
这些问题。你能形象点告诉我什么意思嘛!我半懂现在啊
demo是个框架还是什么?demo1是那些图片加起来的高度吗?当demo1移动到上面的时候,demo框架移动哪里去?去跑到demo1上面吗?此时 demo2移动到demo1原来的位置时,demo2.innerHTML=demo1.innerHTML意思是说demo1克隆成demo2是吗?
谁能详细的一步步说明啊,或最好用图形表达demo,deno1,demo2移动位置。
还有就是scrollTop-为什么加个减号?

#1


-d:)

#2


大家谁知道了,谢谢告我一下

#3


这代码我也用,你要做什么吗?
这个是移动div的位置,当demo2位置完全移到demo1的位置时,这是demo的位置已经变了,跟随demo1的位置滚动了
这是要使demo回到他原来的位置,就比如减去demo1的高度
就这样不断的循环变换!

#4


demo1.offsetTop <= demo.scrollTop

其实就是这样
应该明白了吧

#5


谢谢各位了,说实在楼上的我还是不太懂!

scrollTop是滚动的距离,那offsetTop到底是啥了,概念太难理解了

demo2.offsetTop   这个是demo2距离demo1底端的距离,还是其他了 
demo.scrollTop     这个代表容器滚动的多少吗 
if(demo2.offsetTop-demo.scrollTop <=0)  //当滚动至demo1与demo2交界时
为什么是距离减去滚动高度呢?

#6


汗!我说得那么明白
竟然还不理解!

#7


if(demo2.offsetTop-demo.scrollTop   <=0)     //当滚动至demo1与demo2交界时 
为什么是距离减去滚动高度呢? 
意思是demo2位置逐渐移到demo1的原来位置

#8


谢谢你了,那offsetTop到底是啥了

#9


还是自己漫漫想想把!

#10


 1.scrollTop   对象最顶端和窗口中可见内容的最顶端之间的距离 
2.offsetTop   相对于版面或由   offset   parent   属性指定的父坐标的计算顶端位置 
 

#11


不用想,你查下相关手册就明白了

#12


http://blog.csdn.net/chinmo/archive/2008/02/18/2102799.aspx
要不你就来我博客看看!

#13


demo2.offsetTop 是指demo2层的顶端与包含demo2的层demo的距离.这是个只读属性.这里就等于demo1层的高度.
demo.scrollTop  表示层流动的时候,流动的多少.一开始是0,流动块下移,该值就增加.


/*
 现在demo2和demo1是两个一模一样的层.
 demo2.offsetTop一直等于demo1.offsetHeight  而deom.scrollTop一开始等于0
 所以一直是执行else中的demo.scrollTop++ 也就是不停地往上流动.
 demo.scrollTop不停增加,最后小于或等于offsetTop时,让demo.scrollTop重新回到开始.
 所以我觉得当<=0时直接deom.scrollTop = 0 也一样.
*/
 if(demo2.offsetTop-demo.scrollTop <=0){   
     demo.scrollTop-=demo1.offsetHeight;     
 }
 else{
     demo.scrollTop++;
 }

#14


我也刚刚碰到这些
if(demo2.offsetTop-demo.scrollTop
demo.scrollTop-=demo1.offsetHeight
else{
demo.scrollTop++
这些问题。你能形象点告诉我什么意思嘛!我半懂现在啊
demo是个框架还是什么?demo1是那些图片加起来的高度吗?当demo1移动到上面的时候,demo框架移动哪里去?去跑到demo1上面吗?此时 demo2移动到demo1原来的位置时,demo2.innerHTML=demo1.innerHTML意思是说demo1克隆成demo2是吗?
谁能详细的一步步说明啊,或最好用图形表达demo,deno1,demo2移动位置。
还有就是scrollTop-为什么加个减号?