当前位置:编程学习 > C#/ASP.NET >>

.net文字滚动问题

文字滚动已经实现
 不过 滚动我要求显示的数据是3条

数据库里读出来 也是 TOP 3 

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using JK.CommonWeb2;
using JKOSFacade;
using System.Data;

namespace JKOS.MessageFrame
{
    public partial class AfficheMessage :PageBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                getInfoData();
            }
        }
        private void getInfoData()
        {
            string sql = "select top 3 * from Tab_OA_Bulletin where Status='1' order by ID desc";
            JKOSFacade.SysManagerFacade jkos = new SysManagerFacade();
            DataSet ds = jkos.getDataSetBySql(sql);
            foreach(DataRow dr in ds.Tables[0].Rows)
            {
                this.Label1.Text += "<div style=\"width:100%; word-wrap:break-word;\"><b>·</b>" + dr["BContent"].ToString() + " (" + Convert.ToDateTime(dr["CreateTime"]).ToString("yyyy-MM-dd") + ")</div>";
            }
        }
    }
}




页面源代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AfficheMessage.aspx.cs"
    Inherits="JKOS.MessageFrame.AfficheMessage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>JKOS</title>
    <link href="../App_Themes/default/main.css" rel="stylesheet" type="text/css" />
    <style type="text/css">
        html, body
        {
            height: 100%;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div id="marquees" style="border: 1px dashed red;width:100%;height:300px;">
        <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
    </div>
    </form>
</body>
 <script language="javascript">
<!--
marqueesHeight=200; //内容区高度

stopscroll=false; //这个变量控制是否停止滚动
with (marquees) {
    noWrap = true; //这句表内容区不自动换行
//    style.width = 0; //于是我们可以将它的宽度设为0,因为它会被撑大
    style.height = marqueesHeight;
    style.overflowY = "hidden"; //滚动条不可见

    onmouseover = new Function("stopscroll=true"); //鼠标经过,停止滚动
    onmouseout = new Function("stopscroll=false"); //鼠标离开,开始滚动
}
//这时候,内容区的高度是无法读取了。下面输出一个不可见的层"templayer",稍后将内容复制到里面:
document.write('<div id="templayer" style="position:absolute;z-index:1;visibility:hidden"></div>');

function init() { //初始化滚动内容
    //多次复制原内容到"templayer",直到"templayer"的高度大于内容区高度:
    while (templayer.offsetHeight < marqueesHeight) {
        templayer.innerHTML += marquees.innerHTML;
    }
    //把"templayer"的内容的“两倍”复制回原内容区:
    marquees.innerHTML = templayer.innerHTML + templayer.innerHTML;
    //设置连续超时,调用"scrollUp()"函数驱动滚动条:
    setInterval("scrollUp()", 50);
}
document.body.onload=init;

preTop=0; //这个变量用于判断滚动条是否已经到了尽头

function scrollUp() { //滚动条的驱动函数
    if (stopscroll == true) return; //如果变量"stopscroll"为真,则停止滚动 
    preTop = marquees.scrollTop; //记录滚动前的滚动条位置
    marquees.scrollTop += 1; //滚动条向下移动一个像素
    //如果滚动条不动了,则向上滚动到和当前画面一样的位置
    //当然不仅如此,同样还要向下滚动一个像素(+1):
    if (preTop == marquees.scrollTop) {
        marquees.scrollTop = templayer.offsetHeight - marqueesHeight + 1;
    }
}
-->
    </script>
</html>
--------------------编程问答-------------------- 这个效果在界面上显示的是循环那3条
现在是要只显示3条
循环显示  只显示3条 --------------------编程问答-------------------- 主要是 脚本 的问题

希望高手看懂 能给我 详细的脚本 --------------------编程问答-------------------- 脚本抄来的吧,(*^__^*) ……
自己写的话一般是不会注释的如此详细 --------------------编程问答--------------------

<div id=rolllink style="overflow: hidden; width: 100px; height: 30px">
<div id=rolllink1>
    <table cellspacing=5 width="100%">
        <tr><td>第一行</td></tr>
        <tr><td>第二行</td></tr>
        <tr><td>第三行</td></tr>
    </table>
</div>
<div id=rolllink2></div>
</div>

<script>
    var rollspeed=30
    rolllink2.innerHTML=rolllink1.innerHTML //克隆rolllink1为rolllink2
    function Marquee(){
        if(rolllink2.offsetTop-rolllink.scrollTop<=0) //当滚动至rolllink1与rolllink2交界时
            rolllink.scrollTop-=rolllink1.offsetHeight  //rolllink跳到最顶端
        else{
            rolllink.scrollTop++
        }
    }
    var MyMar=setInterval(Marquee,rollspeed) //设置定时器
    rolllink.onmouseover=function() {clearInterval(MyMar)}//鼠标移上时清除定时器达到滚动停止的目的
    rolllink.onmouseout=function() {MyMar=setInterval(Marquee,rollspeed)}//鼠标移开时重设定时器
</script>
--------------------编程问答--------------------
引用 4 楼 rangeon 的回复:
HTML code
<div id=rolllink style="overflow: hidden; width: 100px; height: 30px">
<div id=rolllink1>
    <table cellspacing=5 width="100%">
        <tr><td>第一行</td></tr>
        <tr><td>第二行</td></tr>
        <tr><td>第三行</td></tr>
    </table>
</div>
<div id=rolllink2></div>
</div>

<script>
    var rollspeed=30
    rolllink2.innerHTML=rolllink1.innerHTML //克隆rolllink1为ro…
--------------------编程问答--------------------
引用 4 楼 rangeon 的回复:
HTML code
<div id=rolllink style="overflow: hidden; width: 100px; height: 30px">
<div id=rolllink1>
    <table cellspacing=5 width="100%">
        <tr><td>第一行</td></tr>
        <tr><td>第二行</td></tr>
        <tr><td>第三行</td></tr>
    </table>
</div>
<div id=rolllink2></div>
</div>

<script>
    var rollspeed=30
    rolllink2.innerHTML=rolllink1.innerHTML //克隆rolllink1为ro…

o(∩_∩)o...,JF --------------------编程问答--------------------
引用 4 楼 rangeon 的回复:
HTML code
<div id=rolllink style="overflow: hidden; width: 100px; height: 30px">
<div id=rolllink1>
    <table cellspacing=5 width="100%">
        <tr><td>第一行</td></tr>
        <tr><td>第二行</td></tr>
        <tr><td>第三行</td></tr>
    </table>
</div>
<div id=rolllink2></div>
</div>

<script>
    var rollspeed=30
    rolllink2.innerHTML=rolllink1.innerHTML //克隆rolllink1为ro…



Dotnet.Silverlight......[qq群34129441]
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,