怎么实现marquee标签的向上无缝滚动?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么实现marquee标签的向上无缝滚动?相关的知识,希望对你有一定的参考价值。

用《marquee》标签,必须一次滚动完之后,才会进行下次滚动,也就是说头尾有很大的间隔,我想实现的效果是:有间隔,但间隔不能太大。通过上网搜到很多例子代码,可是他们获取的滚动区域的文字都是列表形式的,如:
<li>1 <a href="#" title="信息公开工作">挺酷的VB打字效果,加载外部TXT文本</a></li>
<li>2 <a href="#" title="信息公开工作">国务院办公厅转发监察部等部门 </a></li>
而我滚动的文字部分全部来自一个变量a,文字的格式也是在a中设置的,请问该怎么解决这个问题?

<html>
    <head>
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width">
    </head>
    <body>
        <style>
            #marquee pheight:30px;line-height: 30px;margin:0
        </style>
        <div style="height:30px;overflow:hidden;">
            <div id='marquee'>
                <p>第1段</p>
                <p>第2段</p>
                <p>第3段</p>
                <p>第4段</p>
                <p>第5段</p>
            </div>
        </div>

        <script>
            (function()
                var marquee = document.getElementById('marquee');
                var offset=0;
                var scrollheight =marquee.offsetHeight;
                var firstNode = marquee.children[0].cloneNode(true);
                marquee.appendChild(firstNode);//还有这里
                setInterval(function()
                    if(offset == scrollheight)
                        offset = 0;
                    
                    marquee.style.marginTop = "-"+offset+"px";
                    offset += 1;
                ,50);
            )();
        </script>
    </body></html>

<div id="demo" style="overflow:hidden;height:168px;width:300px;">

<div id="demo1">

   <!--此处放要显示的内容-->

</div>

<div id="demo2"></div>

</div>

<script language="javascript">

var speed=30;

var demo2=document.getElementByIdx_x("demo2");

var demo1=document.getElementByIdx_x("demo1");

var demo=document.getElementByIdx_x("demo");

demo2.innerHTML=demo1.innerHTML;

function Marquee()

if(demo2.offsetTop-demo.scrollTop<=0)

   demo.scrollTop-=demo1.offsetHeight;

else

   demo.scrollTop++;

var MyMar=setInterval(Marquee,speed);

demo.onmouseover=function() clearInterval(MyMar);

demo.onmouseout=function() MyMar=setInterval(Marquee,speed);

</script>


—— 【仙】墨纸

参考技术A

先写个案例

<marquee style="width: 100%;" scrollamount="2" direction="up" behaviour="Scroll">这是案例这是案例这是案例这是案例这是案例这是案例这是案例</marquee>

在说说direction属性

direction="left"
向左(默认值)
direction="right"
向右
direction="down"
向下
direction="up"
向上

代码:

<marquee direction="up">我向上滚动</marquee>

参考技术B jQuery的例子,跑马灯不工作 参考技术C margquee做不到无缝滚动的,只能靠js

以上是关于怎么实现marquee标签的向上无缝滚动?的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript----marquee滚动标签 图片无缝滚动 插入百度地图

html/js 使用marquee标签,怎么可以做到无缝滚动

marquee标签怎么设置停止滚动

marquee滚动,无缝连接的代码

marquee无缝滚动,开始很好,一段时间后就自动停下来了

maquee 无缝轮播