求解释一段js代码,一直无法想明白marquee函数里 是啥意思

每天进步一点点e 2013-05-02 02:44:10
 <div id="demo">

<script>
var speed = 50;
var tab = document.getElementById('demo');
var tab1 = document.getElementById('demo1');
var tab2 = document.getElementById('demo2');
tab2.innerHTML = tab1.innerHTML;

function Marquee() {
if (tab2.offsetWidth - tab.scrollLeft <= 0)
tab.scrollLeft -= tab1.offsetWidth
else {
tab.scrollLeft++;
}
}
var MyMar = setInterval(Marquee, speed);
tab.onmouseover = function() {
clearInterval(MyMar)
};
tab.onmouseout = function() {
MyMar = setInterval(Marquee, speed)
}; </script>

<div id="indemo">
<div id="demo1">
<ul>
<li>
<span class="sp3"><a href="product_d.html" ><img src="images/p1.jpg" onload="resize(this,170,136)" /></span>
<span class="sp4"><a href="#">展柜</a></span>
</li>
<li>
<span class="sp3"><a href="product_d.html" ><img src="images/p1.jpg" onload="resize(this,170,136)" /></span>
<span class="sp4"><a href="#">展柜</a></span>
</li>
<li>
<span class="sp3"><a href="product_d.html" ><img src="images/p1.jpg" onload="resize(this,170,136)" /></span>
<span class="sp4"><a href="#">展柜</a></span>
</li>
<li>
<span class="sp3"><a href="product_d.html" ><img src="images/p1.jpg" onload="resize(this,170,136)" /></span>
<span class="sp4"><a href="#">展柜</a></span>
</li>

</ul>
</div>
<div id="demo2"></div>
</div>
</div>
</div>

...全文
177 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
functionsub 2013-05-02
  • 打赏
  • 举报
回复
引用 5 楼 yang131261 的回复:
[quote=引用 4 楼 functionsub 的回复:]
function Marquee() {
    if (tab2.offsetWidth - tab.scrollLeft <= 0) //tab2.offsetWidth:tab2的实际宽度,当tab.scrollLeft等于tab2.offsetWidth的时候说明tab1已经全部滚完了,于是回归原点
                tab.scrollLeft -= tab1.offsetWidth//回归原点。其实这里写成tab.scrollLeft=0应该也是一样的,正常情况下tab2跟tab1是完全一样的。
    else {
        tab.scrollLeft++;//否则tab里的内容一直向左滚动。
    }
}
tab.scrollLeft 这个是什么意思?[/quote] tab里的内容已经向左滚动了多少像素。 srollLeft,看这名字你也应该知道是啥意思吧。。。
  • 打赏
  • 举报
回复
引用 4 楼 functionsub 的回复:
function Marquee() {
    if (tab2.offsetWidth - tab.scrollLeft <= 0) //tab2.offsetWidth:tab2的实际宽度,当tab.scrollLeft等于tab2.offsetWidth的时候说明tab1已经全部滚完了,于是回归原点
                tab.scrollLeft -= tab1.offsetWidth//回归原点。其实这里写成tab.scrollLeft=0应该也是一样的,正常情况下tab2跟tab1是完全一样的。
    else {
        tab.scrollLeft++;//否则tab里的内容一直向左滚动。
    }
}
tab.scrollLeft 这个是什么意思?
functionsub 2013-05-02
  • 打赏
  • 举报
回复
function Marquee() {
    if (tab2.offsetWidth - tab.scrollLeft <= 0) //tab2.offsetWidth:tab2的实际宽度,当tab.scrollLeft等于tab2.offsetWidth的时候说明tab1已经全部滚完了,于是回归原点
                tab.scrollLeft -= tab1.offsetWidth//回归原点。其实这里写成tab.scrollLeft=0应该也是一样的,正常情况下tab2跟tab1是完全一样的。
    else {
        tab.scrollLeft++;//否则tab里的内容一直向左滚动。
    }
}
functionsub 2013-05-02
  • 打赏
  • 举报
回复
function Marquee() { if (tab2.offsetWidth - tab.scrollLeft <= 0) //tab2.offsetWidth:tab2的实际宽度,当tab.scrollLeft等于tab2.offsetWidth的时候说明tab1已经全部滚完了,于是回归原点 tab.scrollLeft -= tab1.offsetWidth//回归原点。其实这里写成tab.scrollLeft=0应该也是一样的,正常情况下tab2跟tab1是完全一样的。 else { tab.scrollLeft++;//否则tab里的内容一直向左滚动。 } }
  • 打赏
  • 举报
回复
不明白
LuciferStar 2013-05-02
  • 打赏
  • 举报
回复
跑马灯。。。

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧