87,910
社区成员
发帖
与我相关
我的任务
分享
gridComplete: function () {
var div = $('#dataList').closest('.ui-jqgrid-bdiv')[0],offsetHeight = div.offsetHeight//////////////
, scrollHeight = div.scrollHeight-offsetHeight, scrollTop = 0,timer;
function scrollBody() {
timer = setInterval(function () {
scrollTop += 1;
div.scrollTop = scrollTop;
if (scrollTop >= scrollHeight) {//循环滚动
scrollHeight = div.scrollHeight - offsetHeight;//如果在滚动过程中添加过数据,需要重新结算scrollHeight
if(scrollTop>=(ob3-16)*33){
scrollTop = 0; //循环滚动,重置滚动头即可
}
}
}, 50);
}
$('#dataList').mouseover(function () {//添加over事件,停止滚动
clearInterval(timer);
});//.mouseout(function (e) {//添加mouseout事件,继续滚动
//scrollBody();
//});
if(ob3>16){
scrollBody() ;///开始滚动jqgrid内容
}
}
这是我最终的代码 不知道版主说的小bug是不是循环滚动的时候表格会闪,比如当前滚动第N行的时候,表格要先调到最顶端,然后再滚动第(N+1)行,如果是的话 我上面写的代码不会出现这个问题(其中33是我表格中每行的高度,ob3是表格的总行数,16是表格可看到的行数),但是我这段代码有个问题貌似,在IE10模式下,运行几分钟,浏览器会挂掉,但是在IE8模式下没有发现这个问题,不知道是什么情况,总之,非常感谢版主的帮助。 jQuery("#grid").jqGrid({//////////
gridComplete: function () {
var div = $('#grid').closest('.ui-jqgrid-bdiv')[0]//////////////
, scrollHeight = div.scrollHeight, scrollTop = 0;
var timer= setInterval(function () {
scrollTop += 5;
div.scrollTop = scrollTop;
if (scrollTop >= scrollHeight) clearInterval(timer);//滚动到底部,释放计时器
}, 100);
},