博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

解决DataList控件无缝滚动图片

Posted on 2009-06-03 14:02  shanymen  阅读(1244)  评论(1编辑  收藏  举报

解决问题:1.无缝滚动;2.页面初始时图片显示页面上,而不是才从一个方向出来。
将绑定数据绑定到DataList 控件后。其他数据控件也可使用此方法。
页面源代码:

<div id="demo" style="OVERFLOW: hidden; WIDTH: 922px; HEIGHT: 137px">
<table cellpadding="0" cellspacing="0" width="804px">
<tr>
<td id="demo1">
<asp:DataList ID="dlInfo" runat="server" Height="1px" RepeatColumns="5" RepeatDirection="Horizontal" Width="41px">
    <ItemTemplate>
        <table style="width: 155px; height: 125px" cellpadding="0" cellspacing="0">
            <tr>
                <td style="height: 100px">
                    //显示图片
                    <asp:Image ID="Image1" runat="server" Height="114px" Width="180px" ImageUrl='<%# Eval("GImage") %>' /></td>
            </tr>
            <tr>
                <td align="center" style="text-align: center; height: 25px;">
                   //显示图片名称
                    <asp:HyperLink ID="HyperLink2" runat="server" Text='<%# Eval("GName") %>' Font-Size="9pt" ForeColor="#249DE3"></asp:HyperLink></td>
            </tr>
        </table>
    </ItemTemplate>
</asp:DataList>
</td>
//这里很重要,需要一列来滚动图片
<td id="demo2"></td>
</tr>
</table>
</div>
//滚动代码
<script type="text/javascript" language="javascript">
//滚动速度
var speed=20
demo2.innerHTML=demo1.innerHTML
//从右至左
function Marquee(){
if(demo1.offsetWidth-demo.scrollLeft<=0)
    demo.scrollLeft=0
else
    demo.scrollLeft++
}
var MyMar=setInterval(Marquee,speed)
demo.onmouseover=function(){clearInterval(MyMar)}
demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}
</script>