首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

js 走马灯,该怎么处理

2012-12-16 
js 走马灯想做在div里做一个走马丁的效果 div idtxt我爱北京天安门,我爱中国/div请问怎么写代码用

js 走马灯
想做在div里做一个走马丁的效果

 <div id="txt">我爱北京天安门,我爱中国</div>

请问怎么写代码用按钮控制向左还是向右,还有一个停止按钮
[最优解释]

<!DOCTYPE html>  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<style type="text/css">  
    img{border: none;}  
</style>  
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js" type="text/javascript"></script>  
<script type="text/javascript">  
$(function(){  
    var speed=30;  
    var demo = $("#demo");  
    var demo1 = $("#demo1");  
    var demo2 = $("#demo2");  
    demo2.html(demo1.html());  
    function Marquee(){   
        if(demo.scrollLeft()>=demo1.width())  
            demo.scrollLeft(0);   
        else{  
            demo.scrollLeft(demo.scrollLeft()+1);  
        }  
    }   
    var MyMar=setInterval(Marquee,speed)   
    demo.mouseover(function() {  
        clearInterval(MyMar);  
    } )  
    demo.mouseout(function() {  
        MyMar=setInterval(Marquee,speed);  
    } )  
});  
</script>  
</head>  
<body>  
<div id="demo" style="overflow:hidden;width:500px;">  
  <table border=0 align=center cellpadding=0 cellspacing=0 >  
    <tr>  
      <td id="demo1" valign="top" bgcolor="#ffffff"  >  
      <!-- 特别注意,下面的图片总宽度必须大于上面定义的demo的宽度,如上面demo的宽度为500px,则下面图片总宽度必须大于500,否则会出现些问题! -->  
          <table border="0" cellspacing="0" cellpadding="0">  
          <tr align="center">  
            <td><a href="#" target="_blank"><img alt="js 走马灯,该怎么处理" src="01.jpg" width="150" height="100"></a></td>  
            <td><a href="#" target="_blank"><img alt="js 走马灯,该怎么处理" src="02.jpg" width="150" height="100"></a></td>  
            <td><a href="#" target="_blank"><img alt="js 走马灯,该怎么处理" src="03.jpg" width="150" height="100"></a></td>  
            <td><a href="#" target="_blank"><img alt="js 走马灯,该怎么处理" src="04.jpg" width="150" height="100"></a></td>  


            <td><a href="#" target="_blank"><img alt="js 走马灯,该怎么处理" src="05.jpg" width="150" height="100"></a></td>  
          </tr>  
        </table>  
      </td>  
      <td id="demo2" valign="top"></td>  
    </tr>  
  </table>  
</div>  
</body>  
</html> 



上面是图片的, 你自己把这个改一下就好了
[其他解释]
使用marquee标签就可以了。
[其他解释]
javascript问题通常比较浅、比较乱,而且其实也不应该在asp.net论坛里(因为有专门的html/javascript论坛)。

要想左右循环移动,那么你需要将一个组件重复n遍并左右并排对齐摆放。假设说一个<div>宽度是w,那么n个并排摆放到一个<div>中,那么这个新的组的的宽度就是w*n。这里n等于几,取决于需要并排多少个才能让w*n大于外边剪切容器的宽度+w。例如你的文字的宽度是150个像素,剪切容器的宽度是400像素,那么就并排4个文字就好了。

然后比如说向左移动,也就是说在一个定时器控制下让left坐标不断减小(例如减小2个像素),当left等-w的时候,立刻设置left=0。因为内容的宽度是剪切容器宽度+w,所以剪切容器里总是能看到“首尾连续”的走马灯文字,而不会出现marquee那种变为“空白”的低级体验。
[其他解释]
上面说的“每一次将left减2个像素、判断left=-w”,这是向左移动时的处理方式。向右移动时,把增量修改为+2,把初始left设置为-w,然后判断当left>=0时立刻设置left=-w,就能循环走马灯了。

而“停止按钮”,不过是一个flag,在定时器(setTimer)过程中判断这个标志来决定是否要将left的值修改。
[其他解释]
http://blog.csdn.net/spritenet/article/details/8080181
[其他解释]
引用:
使用marquee标签就可以了。


这个就可以用 

上下左右,去 w3cshool.com上看下对应的参数。

热点排行