javascript中关于marquee的使用问题

JS滚动效果实现
本文介绍了一个使用JavaScript实现的水平滚动效果。通过定时调整元素的滚动位置来模拟marquee标签的效果,并利用mouseover和mouseout事件控制滚动的启停。

看到javascript中关于marquee的使用问题就转载下:

=================html框架=========

<div id="demo" style="overflow:hidden;width:228px; height:428px;">
        <div id="demo1">
                <asp:Repeater ID="Repeater2" runat="server">
                <ItemTemplate>
                <%#Eval("Content") %>
                </ItemTemplate>
                </asp:Repeater>
        </div>
<div id="demo2"></div>
</div>

=================================

 

<script>
var speed=10;    // 计时器时间间隔(用于控制滚动速度),单位千分之一秒
demo2.innerHTML=demo1.innerHTML;  // 创建一个滚动对象的副本,目地是实现首尾相连效果
function Marquee(){
   if(demo2.offsetWidth-demo.scrollLeft<=0)
      demo.scrollLeft-=demo1.offsetWidth;    // 如果demo已经滚出可见区,则将demo重新显示于可见区(虽然从代码来看这样解释不完全正确,但这样更容易理解)
   else{
      demo.scrollLeft++;   // 否则将demo向左滚动一像素.
   }
}
var MyMar=setInterval(Marquee,speed);  // 设置一个计时器,定时调用Marquee函数实现滚动
demo.onmouseover=function() {clearInterval(MyMar)}   // 当鼠标移到demo上时,取消计时器,停止滚动
demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}   // 当鼠标离开demo时,重设计时器,开始滚动
</script>

<table style="BORDER-RIGHT: #666666 1px solid; BORDER-TOP: #666666 1px solid; BORDER-LEFT: #666666 1px solid; BORDER-BOTTOM: #666666 1px solid" cellSpacing=0 cellPadding=0 width=750 align=center border=0> <tr> <td width="30"> <a href="#" onClick="clickdiv()" id="aa">向左 </a> </td> <td> <DIV id=demo style="OVERFLOW: hidden; WIDTH: 750px; COLOR: #ffffff"> <table cellSpacing=0 cellPadding=0 align=left border=0 cellspace="0"> <tr> <td id=demo1 vAlign=top> <table width="1710" height="116" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="171" background="pic_bg.jpg"> <div align="center">内容一 </div> </td> <td width="171" background="pic_bg.jpg"> <div align="center">内容二 </div> </td> <td width="171" background="pic_bg.jpg"> <div align="center">内容三 </div> </td> <td width="171" background="pic_bg.jpg"> <div align="center">内容四 </div> </td> <td width="171" background="pic_bg.jpg"> <div align="center">内容五 </div> </td> <td width="171" background="pic_bg.jpg"> <div align="center">内容六 </div> </td> </tr> </table> </td> <td id=demo2 vAlign=top> </td> </tr> </table> </DIV> </td> <td width="30"> <a href="#" onClick="Rclickdiv()" id="mcc">向右 </a> </td> </tr> </table> <SCRIPT> var speed3=25//速度数值越大速度越慢 var t=false; var id="aa"; document.getElementById("demo2").innerHTML=document.getElementById("demo1").innerHTML function Marquee(){ if(document.getElementById("demo2").offsetWidth-document.getElementById("demo").scrollLeft <=0) document.getElementById("demo").scrollLeft-=document.getElementById("demo1").offsetWidth else{ document.getElementById("demo").scrollLeft++ } t=false; } function RMarquee(){ if(document.getElementById("demo").scrollLeft <=0) document.getElementById("demo").scrollLeft+=document.getElementById("demo2").offsetWidth else{ document.getElementById("demo").scrollLeft-- } t=true; } function clickdiv(){ clearInterval(MyMar) Marquee(); } function Rclickdiv(){ clearInterval(MyMar) RMarquee(); } var MyMar=setInterval(Marquee,speed3) document.getElementById("demo").onmouseover=function() {clearInterval(MyMar)} document.getElementById("demo").onmouseout=function() {if(t){MyMar=setInterval(RMarquee,speed3)}else{MyMar=setInterval(Marquee,speed3)}} document.getElementById('mcc').onmouseout=function(){clearInterval(MyMar);MyMar=setInterval(RMarquee,speed3);} document.getElementById('aa').onmouseout=function(){clearInterval(MyMar);MyMar=setInterval(Marquee,speed3);} </SCRIPT> 一个简单的向左或向右移动的案例: <base href=" <a href="http://www.it365cn.com" target="_blank">http://www.it365cn.com </a>"> <div id=demo style=overflow:hidden;height:120;width:500;background:#214984;color:#ffffff> <table align=left cellpadding=0 cellspace=0 border=0> <tr> <td id=demo1 valign=top> <a href='images/logo_1.gif'> <img src="images/logo_1.gif"> </a> <!--后面的链接自己加上--> <img src="images/logo/flashempire.gif"> <img src="images/logo.gif"> <img src="images/logo/5dmedia.gif"> <img src="images/logo/macromedia.gif"> <img src="images/logo/sucaiw.gif"> <img src="images/logo/blueieda.gif"> <img src="images/logo/htmlcn.gif"> <img src="images/logo/fwcn.gif"> </td> <td id=demo2 valign=top> </td> </tr> </table> </div> <script> //向左滚动的效果 var speed=30 demo2.innerHTML=demo1.innerHTML function Marquee(){ if(demo2.offsetWidth-demo.scrollLeft <=0) demo.scrollLeft-=demo1.offsetWidth else{ demo.scrollLeft++ } } var MyMar=setInterval(Marquee,speed) demo.onmouseover=function() {clearInterval(MyMar)} demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)} </script> <script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值