或者不用marquee用js来实现也行,但是要完成滚动完一次刷新一次页面再循环滚动

解决方案 »

  1.   

    如何实现暂且不说(其实是我也不知道),可是你没有觉得这个需求有点二?这滚动的肯定不会是页面的主要内容区域吧,如果我正在看着其他的主要内容部分,这个地方突然给我刷新了一下网页,使得网页重新加载,那对于用户来说,这是什么感觉?太扯淡了。而且,你也没有必要刷新网页啊,用ajax向后台提出请求,如果有新的变动,直接DOM,或者jquery添加一个,删除一个就可以了啊,而且不影响用户使用其他功能,这个请求可以间隔多长时间发出一次。
      

  2.   

    哦哦,这样还是觉得用ajax异步加比较好,要么你刷新,肯定还会有个过程,如果这个过程的时间较长,就会减少很多用户的。让我们自己想想,谁愿意几秒或者几十秒的刷新一次网页,刷新之后还要加载一会,顺畅的时候倒是没有多大关系,如果每次加载需要几秒钟,不就崩溃了。所以,我个人觉得呢,这个还是用定时器,间隔性的发出ajax请求,请求数据获得之后,用动态的更新页面数据,然后再次添加一个定时器。感觉间隔性刷新页面的用户体验有点差。同时,我刚才查看了marquee的属性方法,没有找到能判断marquee停止的属性,这个就有点麻烦了。回复会置顶的,看有没有其他人知道了,不常有这个标签。
      

  3.   

    <div style="height:600px;width:100%;overflow:hidden;line-height:20px;" id="dvScroll" onmouseover="clearInterval(timer);" onmouseout="timer = setInterval(scrollDiv, 100);">
    <div id="dvContent">内容<br />内容<br />内容<br />内容<br />内容</div></div>
    <script>
        var scrollTop = 0, timer, dvScroll,containerHeight, scrollHeight, lineheight = 20;
        function scrollDiv() {
            scrollTop += 5;
            if (scrollTop > scrollHeight) scrollTop = scrollHeight;
            dvScroll.scrollTop = scrollTop;
            if (scrollTop == scrollHeight) {//完成滚动,要ajax重新获取内容或者刷新页面都行,下面为重新加载的,要ajax自己取消注释,导入jquery
                clearInterval(timer);
                window.location.reload();
                /*//ajax动态加载部分,用了jquery
                $('#dvContent').load('内容页url地址',function(){
                   dvScroll.scrollTop = scrollTop = 0;//重置滚动高度
                   scrollHeight =containerHeight + dvContent.offsetHeight;
                   timer = setInterval(scrollDiv, 100);
                });
                */
            }
        }
        window.onload = function () {
            dvScroll = document.getElementById('dvScroll');
            containerHeight = dvScroll.offsetHeight;
            var dvContent = document.getElementById('dvContent'), j = Math.floor(containerHeight / lineheight) + (containerHeight % lineheight ? 1 : 0)
            , blank = '';
            //填充空白,以便内容从底部上升
            for (var i = 0; i < j; i++) blank += '<br/>';        scrollHeight = containerHeight + dvContent.offsetHeight;        dvScroll.innerHTML = blank + dvScroll.innerHTML + blank;        timer = setInterval(scrollDiv, 100);
        }
    </script>