无间断滚动效果 htc

marquee.htc


代码如下:

//  描述        : 无间断滚动字幕
//  版本        : 2.0
//  作者        : 宝玉(WebUC.NET)
//  最新更新    : 2004-10-26
//  备            :

<public:component>

<public:attach event="oncontentready" onevent="f_Init()" />
<public:attach event="onpropertychange" onevent="f_PropChange()" />
<public:property name="direction" />
<public:property name="speed" />
<public:property name="delay" />

<public:method NAME="marquee"/>
<public:method NAME="stop"/>
<public:method NAME="start"/>
</public:component>

<script language="JScript">

var _oMarqueeContent;
var _oMarquee;
var _speed = 2;

var _orientation;
var _direction = "up";

var _ContentWidth;
var _ContentHeight;
var _MarqueeWidth;
var _MarqueeHeight;
var _paddingTop;

var _firstNode = 1;
var _count = 0;

var _timer = null;
var _pause = false;

var _marqueeInterval = 100;    // 滚动间隔
var _delayInterval = 2000;    // 标题显示延迟间隔

//+----------------------------------------------------------------------------
//  Function:       f_Init
//  Description:    初始化
//    Parameters:        null
//  Returns:        null
//-----------------------------------------------------------------------------
function f_Init()
{

_oMarquee = document.createElement("div");
    _oMarqueeContent = document.createElement("span");
    _oMarqueeContent.innerHTML = element.innerHTML;
    _oMarquee.appendChild(_oMarqueeContent);
    element.innerHTML = "";
    element.appendChild(_oMarquee);

if(speed == null) speed = _speed;
    speed = parseInt(speed);
    if(!speed) speed =_speed;

if(delay == null) delay = _delayInterval;
    delay = parseInt(delay);
    if(!delay) delay = _delayInterval;

if(direction == null) direction =_direction;
    direction = direction.toLowerCase();
    if(direction != "left" && direction != "right" && direction != "up" && direction != "down")
        direction = _direction;

_orientation= (direction == "left" || direction == "right") ? "horizontal" : "vertical"

InitMarquee();

marquee();
}

function InitMarquee()
{

_MarqueeWidth = _oMarquee.offsetWidth;
    _MarqueeHeight = _oMarquee.offsetHeight;
    _count = _oMarqueeContent.children.length;

_ContentWidth = _oMarqueeContent.offsetWidth;
    _ContentHeight = _oMarqueeContent.offsetHeight;

_paddingTop = _oMarquee.offsetTop;

FillMarquee()

_oMarqueeContent.style.position = "relative";
    _oMarqueeContent.style.pixelTop = 0;

}

function FillMarquee()
{
    var children = _oMarqueeContent.children;
    var i = 0;

if (_orientation== "horizontal")
    {
        while (_oMarqueeContent.offsetWidth < _ContentWidth + _MarqueeWidth)
        {
            _oMarqueeContent.appendChild(children[i++].cloneNode(true));
        }
    }
    else
    {
        while (_oMarqueeContent.offsetHeight < _ContentHeight + _MarqueeHeight)
        {
            _oMarqueeContent.appendChild(children[i++].cloneNode(true));
        }
    }
}

function marquee()
{
    if (_pause)
        return;

switch(direction)
    {
        case "up":
            _oMarqueeContent.style.pixelTop -= speed;
            if(Math.abs(_oMarqueeContent.style.pixelTop + _ContentHeight + _paddingTop) < speed)
                _oMarqueeContent.style.pixelTop = 0;

if (Math.abs(_oMarqueeContent.children[_firstNode].offsetTop) - _paddingTop < speed)
            {
                _firstNode++;
                if (_firstNode >= _count)
                    _firstNode = 0;

_timer = window.setTimeout(uniqueID + ".marquee()", _delayInterval);
            }
            else
                _timer = window.setTimeout(uniqueID + ".marquee()", _marqueeInterval);
            break;
    }
}

function stop()
{
    clearTimer();
    _pause = true;
}

function start()
{
    if (_timer != null)
        clearTimer();

_pause = false;

marquee();

}

function clearTimer()
{
    window.clearTimeout(_timer);
    _timer = null;
}

//
// Cancels an event
//
function f_CancelEvent()
{
    event.returnValue = false;
}

//
// A property changed
//
function f_PropChange()
{
    switch (event.propertyName)
    {
        default:
            f_Redraw();
            break;
    }
}

//
// Forces a redraw of the control
//
function f_Redraw()
{

}

</script>

HTML文件


代码如下:

<style>
body,td{
    font-size:9pt;
}

.marquee{
    overflow-y:hidden;word-break:break-all;padding:10px;
    behavior:url('marquee.htc');
}
.marquee div{
    padding-bottom:10px;
}
</style>
无间断滚动<br />
每个标题间有停留<br />
鼠标移入停止,鼠标移出继续滚动<br />

<span style="height:100px;width:200px;border:1px solid black;" delay="3000" class="marquee" onmouseover="this.stop()" onmouseout="this.start()">
        <div><a href="http://www.webuc.net" target="_blank">1. 宝玉(http://www.webuc.net)作品</a></div>
        <div><a href="http://www.webuc.net" target="_blank">2. 强强联手,助推上海建筑领域信息化建设</a> </div>
        <div><a href="http://www.webuc.net" target="_blank">3. 广联达清单招标投标策略研讨会——河南站圆满成功</a> </div>
        <div><a href="http://www.webuc.net" target="_blank">4. 足球友谊赛:河北电建一公司 VS 广联达石家庄分公司</a>  </div>
        <div><a href="http://www.webuc.net" target="_blank">5. 广联达——清单算量软件 GCL7.0新版出炉!</a> </div>
        <div><a href="http://www.webuc.net" target="_blank">6. 喜报:广联达公司顺利通过ISO9000质量管理体系三年复审</a> </div>
        <div><a href="http://www.webuc.net" target="_blank">7. 广联达-清单整体解决方案在北京求实造价咨询公司的成功应用</a> </div>
        <div><a href="http://www.webuc.net" target="_blank">8. 广联达-施工项目成本管理系统(GCM)在荣尊堡工程中的应用</a> </div>
        <div><a href="http://www.webuc.net" target="_blank">9. 广联达-工程概预算软件在北京建工集团总公司东方广场工程的应用</a> </div>
        <div><a href="http://www.webuc.net" target="_blank">10. asdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff</a> </div>
</span>
<script>

</script>

(0)

相关推荐

  • js实现的类marquee水平循环滚动

    复制代码 代码如下: <script> var speed=20;/*速度数值越大速度越慢*/ document.getElementById('www_qpsh_com2').innerHTML=document.getElementById('www_qpsh_com1').innerHTML; /*两个层来回交替出现*/ function Marquee(){ if(document.getElementById('www_qpsh_com2').offsetWidth-document

  • javascript 不间断的图片滚动并可点击

    css: 复制代码 代码如下: <style type="text/css"> .rollBox { width: 704px; overflow: hidden; padding: 12px 0 5px 6px; } .rollBox .LeftBotton { height: 52px; width: 19px; background: url(jt.gif) no-repeat 11px 0; overflow: hidden; float: left; displa

  • javascript 文字上下间隔滚动的代码 符合WEB标准 脚本之家修正版

    第一个 文字上下间隔滚动 修正版 符合WEB标准的文字间隔滚动JS代码 var marqueeContent=new Array(); //滚动新闻 marqueeContent[0]='14:25 HTML/JS互相转换工具-IE7兼容版'; marqueeContent[1]='14:25 css 在线压缩工具'; marqueeContent[2]='14:25 CSS整形与最佳化工具[压缩]'; marqueeContent[3]='14:25 JS Minifier js压缩'; va

  • js 实用的无间断滚动图效果(良好兼容性)

    下面介绍一个方法:基本上实现结构跟行为相分离,两者的联系只需要一个 id就可以,使用起来很方便,而且同一个js代码可以实现在本页面多个滚动图效果,之间互不干扰, 1.xhtml 复制代码 代码如下: <div class="demo" id="demo1"> <table cellpadding="0" cellspacing="0"> <tr> <td><ul> &

  • javascript 实现滚动效果代码整理

    1.先写两个最常用最简洁的滚动代码 代码如下: 水平滚动: <marquee direction="left" align="bottom" height="25" width="100%" onmouseout="this.start()" onmouseover="this.stop()" scrollamount="2" scrolldelay="

  • js 实现无缝滚动 兼容IE和FF

    原理解析: 1.首先给容器设定高度或宽度,比如ul,设置ul高40px;overflow:hidden: 2.容器高度设定后,内容的高度超出40px,超过部分溢出,被隐藏,scrollTop属性可用,这一点可以用overflow:scroll来看效果: 3.改变容器的scrollTop(上下滚动)属性的值,让内容上下移动一个节点的位置(滚动的原理): 4.到滚动的高度scrollTop大于或等于要滚动节点的高度时,设置scrollTop=0,并把把子节点树中的第一个移动到最后,重新开始滚动,无间

  • 无间断滚动marquee的详细用法解析

    新闻一 我是打头的 我向上运动 我向上运动 我向上运动 新闻二 我是打头的 我向上运动 我向上运动 我向上运动 新闻三 我是打头的 我向上运动 我向上运动 //重复一次新闻内容 document.write(news.tBodies[0].innercode) //实现不间断滚动 function newsScroll() { news.style.pixelTop=(news.style.pixelTop-1)%(news.clientHeight/2); } timer1=setInterv

  • javascript 单行文字向上跑马灯滚动显示

    代码如下: =sh/2) o.style.marginTop=0; }else{ clearInterval(t); setTimeout(start,delay); } } setTimeout(start,delay); } // --> 我们 服务器常用软件 百度 浏览器 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

  • Js 实现文字爬楼滚动效果 结合文本框

    文字爬楼 msg="我们网页特效" align="left"; speed=250; up=true; spas=" "; for (a=0;a "); for (i=1;i "); document.write(" "); } document.write(" "); function scrollIt() { j++; with (document.form) { if ((j+12

  • 浅析js 文字滚动效果

    这种效果在今后的web发展中是不是常用或者是否依然被设计师们所青睐,从技术层面看并不是最重要的,了解它的实现原理,对自身前端技术的提高,会有很大的帮助,世间万物,万变不离其宗,掌握了它的运行规律,你才不会被其花花外表所迷惑,甚至你可以在掌握其规律的前提下,运行相关技术,创造出新的效果来.下面看看它的实现过程: 1.html 复制代码 代码如下: <div class="box" id="marqueebox0"> <ul> <li st

  • javascript 一段左右两边随屏滚动的代码

    复制代码 代码如下: <!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> <meta http-equiv=&qu

  • 无间断滚动的新闻文章列表,兼容IE、Firefox和Opera,符合W3C标准。可作Marquee

    <!--Quirks Mode--> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&

  • 无间断滚动的新闻文章列表 多浏览器兼容

    Fifty Studio│无间断滚动的新闻文章列表 @import url("/tutorials/demo/css/ie.css"); #demo{overflow:auto; } } CSS 布局演示 CSS Layout by Forestgan 2006-11-1 发表 三列自适应宽度液态布局│Three Column Liquid Layouts Internet Explorer 7 对CSS的兼容--Box Model Changes 未知大小的图片在一个已知大小容器中的

  • 符合W3C Web标准的图片连续无间隙水平滚动

    这次又遇上一个这样的问题,找了老半天终于从网上找到一个不错的,看了下代码,思路很简单,但代码太多,通用性也不行,于是乎,自己又发明了两个函数,用起来感觉还真不错,与大家共享: 图片连续无间隙向左滚动,无间隙向右滚动,符合W3C Web标准_ //调用向左滚动 toleft("demo","demo1","demo2",30,"hehe123") //调用向右滚动 toright("demo0","

随机推荐