我想实现marquee每次滚动完成后刷新页面,求高手

梦中的RPG 2013-12-18 09:43:30

页面是
<marquee direction="up" height=600 width="100%" onMouseOut="this.start()" onMouseOver="this.stop()" loop="-1" scrollamount="3">
<div>
<table>
</table>
</div>
</marquee>

table里面的数据是从数据库里面读取出来然后从下往上循环滚动显示,但是会实时变化。
所以我希望每完成一次滚动后刷新页面,不知道怎么弄,求高手!!!
...全文
393 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
<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>
张运领 2013-12-18
  • 打赏
  • 举报
回复
哦哦,这样还是觉得用ajax异步加比较好,要么你刷新,肯定还会有个过程,如果这个过程的时间较长,就会减少很多用户的。让我们自己想想,谁愿意几秒或者几十秒的刷新一次网页,刷新之后还要加载一会,顺畅的时候倒是没有多大关系,如果每次加载需要几秒钟,不就崩溃了。 所以,我个人觉得呢,这个还是用定时器,间隔性的发出ajax请求,请求数据获得之后,用动态的更新页面数据,然后再次添加一个定时器。 感觉间隔性刷新页面的用户体验有点差。 同时,我刚才查看了marquee的属性方法,没有找到能判断marquee停止的属性,这个就有点麻烦了。 回复会置顶的,看有没有其他人知道了,不常有这个标签。
梦中的RPG 2013-12-18
  • 打赏
  • 举报
回复
其实这个滚动的东西就是这个网页的全部,一个滚动显示的排名信息,滚动完一次后就更新排名,再接着滚动!
张运领 2013-12-18
  • 打赏
  • 举报
回复
如何实现暂且不说(其实是我也不知道),可是你没有觉得这个需求有点二?

这滚动的肯定不会是页面的主要内容区域吧,如果我正在看着其他的主要内容部分,这个地方突然给我刷新了一下网页,使得网页重新加载,那对于用户来说,这是什么感觉?太扯淡了。

而且,你也没有必要刷新网页啊,用ajax向后台提出请求,如果有新的变动,直接DOM,或者jquery添加一个,删除一个就可以了啊,而且不影响用户使用其他功能,这个请求可以间隔多长时间发出一次。
梦中的RPG 2013-12-18
  • 打赏
  • 举报
回复
或者不用marquee用js来实现也行,但是要完成滚动完一次刷新一次页面再循环滚动

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧