读书人

小弟我想实现marquee每次滚动完成后刷

发布时间: 2013-12-19 00:33:34 作者: rapoo

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

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

table里面的数据是从数据库里面读取出来然后从下往上循环滚动显示,但是会实时变化。
所以我希望每完成一次滚动后刷新页面,不知道怎么弄,求高手!!!
[解决办法]
哦哦,这样还是觉得用ajax异步加比较好,要么你刷新,肯定还会有个过程,如果这个过程的时间较长,就会减少很多用户的。让我们自己想想,谁愿意几秒或者几十秒的刷新一次网页,刷新之后还要加载一会,顺畅的时候倒是没有多大关系,如果每次加载需要几秒钟,不就崩溃了。

所以,我个人觉得呢,这个还是用定时器,间隔性的发出ajax请求,请求数据获得之后,用动态的更新页面数据,然后再次添加一个定时器。

感觉间隔性刷新页面的用户体验有点差。

同时,我刚才查看了marquee的属性方法,没有找到能判断marquee停止的属性,这个就有点麻烦了。

回复会置顶的,看有没有其他人知道了,不常有这个标签。
[解决办法]

<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>

读书人网 >JavaScript

热点推荐