Javascript模拟Marquee

本文介绍了一种使用JavaScript模拟Marquee实现滚动新闻的方法,解决了页面加载时新闻立即可见的需求。通过设置定时器控制新闻标题的滚动,并在鼠标悬停时停止滚动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     在一个项目中,本来是用Marquee实现滚动新闻的,因为客户希望页面一加载就能看到新闻,而不是加载后才慢慢出现.所以在网络上查找解决方案,找到一篇用Javascript模拟Marquee的文章,稍作改动后就用在工程中了,感觉比Marquee好多了.上代码,是个用户控件的代码:

 

ExpandedBlockStart.gifContractedBlock.gif<%@ Control Language="C#" AutoEventWireup="true" Codebehind="GG.ascx.cs" Inherits="gxasti.Modules.GG" %>
<div id="header_demo" style="overflow:hidden; width:500px;">
    
<table border="0" cellspacing="0" cellpadding="0">
        
<tr>
            
<td id="header_demo1" nowrap>
                
<!--滚动头条-->
                
<asp:Repeater ID="repColumn" runat="server">
                    
<ItemTemplate>
ExpandedBlockStart.gifContractedBlock.gif                        
&nbsp;&nbsp;<target="_blank" href="News_View.aspx?SubWebItemNo=<%# DataBinder.Eval(Container.DataItem, "SubWebItemNo") %>&id=<%# DataBinder.Eval(Container.DataItem, "id"%>"><font
ExpandedBlockStart.gifContractedBlock.gif                            
style="font-size: 14px; font-weight: bold; color: #ff8a00;">·<%# DataBinder.Eval(Container.DataItem, "titles")%></font></a>
                    
</ItemTemplate>
                
</asp:Repeater>
            
</td>
            
<td id="header_demo2" nowrap>
            
</td>
        
</tr>
    
</table>
</div>

ExpandedBlockStart.gifContractedBlock.gif
<script type="text/javascript">

    
//滚动头条
    //滚动效果
    var header_demo = document.getElementById("header_demo");
    
var header_demo1 = document.getElementById("header_demo1");
    
var header_demo2 = document.getElementById("header_demo2");
    
var speed=20;    //数值越大滚动速度越慢
    header_demo2.innerHTML = header_demo1.innerHTML;

ExpandedSubBlockStart.gifContractedSubBlock.gif    
function Marquee(){
        
//如果内容宽度比容器可视宽度小,不滚动,也不显示第二部分
        if(header_demo1.clientWidth > header_demo.clientWidth)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            
if(header_demo2.offsetWidth-header_demo.scrollLeft<=0)
                header_demo.scrollLeft
-=header_demo1.offsetWidth
ExpandedSubBlockStart.gifContractedSubBlock.gif            
else{
                header_demo.scrollLeft
++
            }

        }

        
else
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            header_demo2.style.display 
= "none";
        }

    }

    
var MyMar = setInterval(Marquee,speed);
ExpandedSubBlockStart.gifContractedSubBlock.gif    header_demo.onmouseover 
= function(){clearInterval(MyMar)}
ExpandedSubBlockStart.gifContractedSubBlock.gif    header_demo.onmouseout 
= function(){MyMar = setInterval(Marquee,speed)}
</script>

 

 

ContractedBlock.gifExpandedBlockStart.gifCSCode
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

namespace gxasti.Modules
ExpandedBlockStart.gifContractedBlock.gif
{
    
public partial class GG : System.Web.UI.UserControl
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
        gxasti.BLL.News news 
= new gxasti.BLL.News();
        
protected string viewLink = string.Empty;
        
protected string listLink = string.Empty;
        gxasti.BLL.Base_UnitMainWebItem model 
= new gxasti.BLL.Base_UnitMainWebItem();
        
string _columnName = string.Empty;
        
string _columnId = string.Empty;
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
        
/// 栏目名称
        
/// </summary>

        public string ColumnName
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
ExpandedSubBlockStart.gifContractedSubBlock.gif            
get return _columnName; }
ExpandedSubBlockStart.gifContractedSubBlock.gif            
set { _columnName = value; }
        }


ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
        
/// 栏目ID
        
/// </summary>

        public string ColumnNo
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
ExpandedSubBlockStart.gifContractedSubBlock.gif            
get return _columnId; }
ExpandedSubBlockStart.gifContractedSubBlock.gif            
set { _columnId = value; }
        }


        
protected void Page_Load(object sender, EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            
if (!IsPostBack)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                repColumn.DataSource 
= news.GetList("SubWebItemNo like '0040%' and sele_news=1 and CheckFlag=1"6);
                repColumn.DataBind();
            }

        }

    }

}

转载于:https://www.cnblogs.com/lmx-102/archive/2008/12/23/1360304.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值