在asp.net中继续Marquee

时间:2011-11-23 08:44:09

标签: javascript asp.net marquee

我正在asp.net开发新闻网站,我想创建新闻栏从右到左移动新闻,我用Marquee标签做了但问题是我希望它重复其内容而不用任何刺戳,因为它已经完成,然后从头开始,我希望它能够不断重复

任何帮助,请

先谢谢

5 个答案:

答案 0 :(得分:4)

如果你必须有marquee功能,那么尝试使用jQuery插件,例如支持连续滚动的simplyScroll v1(即它无缝地环绕)。但是请注意,对于可用性和可访问性而言,对于旧<blink>标记的方式而言,对于可用性和可访问性不熟悉 - 请参阅http://en.wikipedia.org/wiki/Marquee_element#Usability_problems

答案 1 :(得分:2)


我相信这会对你有所帮助:

 <script type="text/javascript" language="javascript">
    function objWidth(obj) {
        if (obj.offsetWidth) return obj.offsetWidth;
        if (obj.clip) return obj.clip.width;
        return 0;
    }
    var mqr = [];

    function mq(id) {
        this.mqo = document.getElementById(id);
        var wid = objWidth(this.mqo.getElementsByTagName('span')[0]) + 5;
        var fulwid = objWidth(this.mqo);
        var txt = this.mqo.getElementsByTagName('span')[0].innerHTML;
        this.mqo.innerHTML = '';
        var heit = this.mqo.style.height;
        this.mqo.onmouseout = function () {
            mqRotate(mqr);
        };
        this.mqo.onmouseover = function () {
            clearTimeout(mqr[0].TO);
        };
        this.mqo.ary = [];
        var maxw = Math.ceil(fulwid / wid) + 1;
        for (var i = 0; i < maxw; i++) {
            this.mqo.ary[i] = document.createElement('div');
            this.mqo.ary[i].innerHTML = txt;
            this.mqo.ary[i].style.position = 'absolute';
            this.mqo.ary[i].style.left = (wid * i) + 'px';
            this.mqo.ary[i].style.width = wid + 'px';
            this.mqo.ary[i].style.height = heit;
            this.mqo.appendChild(this.mqo.ary[i]);
        }
        mqr.push(this.mqo);
    }

    function mqRotate(mqr) {
        if (!mqr) return;
        for (var j = mqr.length - 1; j > -1; j--) {
            maxa = mqr[j].ary.length;
            for (var i = 0; i < maxa; i++) {
                var x = mqr[j].ary[i].style;
                x.left = (parseInt(x.left, 10) - 1) + 'px';
            }
            var y = mqr[j].ary[0].style;
            if (parseInt(y.left, 10) + parseInt(y.width, 10) < 0) {
                var z = mqr[j].ary.shift();
                z.style.left = (parseInt(z.style.left) + parseInt(z.style.width) * maxa) + 'px';
                mqr[j].ary.push(z);
            }
        }
        mqr[0].TO = setTimeout('mqRotate(mqr)', 10);
    }
 </script>

 <script type="text/javascript">
    function start() {
        new mq('m1');
        mqRotate(mqr);
    }

    window.onload = start;
 </script>

 <div id="m1" class="marquee">
    <span>Example for Continous Text</span>
 </div>

答案 2 :(得分:0)

我认为此网站的实施符合您的要求http://www.givainc.com/labs/marquee_example.htm

SO link

答案 3 :(得分:0)

如果您想要新闻滚动条,可以尝试使用jQuery liScroll这个插件,我不知道您是否想在没有重新加载网页的情况下刷新新闻?

链接:http://www.gcmingati.net/wordpress/wp-content/lab/jquery/newsticker/jq-liscroll/scrollanimate.html

答案 4 :(得分:0)

<asp:Literal ID="Literal1" runat="server"></asp:Literal>

然后你可以给文字赋值。

protected void Page_Load(object sender, EventArgs e)
{
    string str = "get data from database";
    string text = "<MARQUEE>" + str + "</MARQUEE>";
    Literal1.Text = text;
}

我认为这个网站很有用。 http://www.dynamicdrive.com/dynamicindex2/

http://www.htmlcodetutorial.com/_MARQUEE.html