关于决策报表JS设置报表块自动滚动

决策报表报表块加上了滚动的JS,模板运行一段时间后会变成这样,报表块本身还设置了定时刷新,有人知道这是为什么吗?JS:

if(window.interval){clearInterval(window.interval);} //判断之前是否执行过该代码,如果有,就停止之前的执行

setTimeout(function() {

       //隐藏报表块report0的滚动条(此报表块名为report0,根据具体情况修改,且需大写)

    $("div[widgetname=REPORT0]").find(".frozen-north").css({

        'overflow-x':'hidden',

        'overflow-y':'hidden'

    });

    $("div[widgetname=REPORT0]").find(".frozen-center").css({

        'overflow-x':'hidden',

        'overflow-y':'hidden'

    });

 

},1000);

window.flag1 = true;

var self1 = this;

//鼠标悬停,滚动停止

setTimeout(function() {

$("div[widgetname=REPORT0]").find(".frozen-center").mouseover(function() {

window.flag1 = false;

});

//鼠标离开,继续滚动

$("div[widgetname=REPORT0]").find(".frozen-center").mouseleave(function() {

window.flag1 = true;

});

var old = -1;

window.interval = setInterval(function() {

if (!self1.isVisible()) {

return;

}

if (window.flag1) {

currentpos1 = $("div[widgetname=REPORT0]").find(".frozen-center")[0].scrollTop;

if (currentpos1 == old && 0!=currentpos1) {

$("div[widgetname=REPORT0]").find(".frozen-center")[0].scrollTop = 0;

} else {

old = currentpos1;

//以25ms的速度每次滚动1.5PX

$("div[widgetname=REPORT0]").find(".frozen-center")[0].scrollTop = currentpos1 + 1.5;

}

}

},

50);

},

1000);

image.png

image.png

FineReport lxy2 发布于 2022-10-13 08:58 (编辑于 2022-10-13 09:09)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
LTC朝Lv6高级互助
发布于2022-10-13 09:01

是不是会话过期了,看下这里的设置

  • lxy2 lxy2(提问者) 之前看过这里了,出现这个问题是不固定的,有时候过几分钟就出现了,有时候挂在那里几个小时也不见出现,有时候第二天上班一看又出现了
    2022-10-13 09:06 
  • LTC朝 LTC朝 回复 lxy2(提问者) 你的定时刷新是怎么做的,使用的js刷新报表块,还是用的定时刷新插件?
    2022-10-13 09:07 
  • lxy2 lxy2(提问者) 我看了帮助文档里写着不适用设置了自动刷新的报表块,但是我报表块设置的是10分钟刷新一次,就是这个问题出现也不是十分钟就会出现一次
    2022-10-13 09:08 
  • lxy2 lxy2(提问者) 回复 LTC朝 定时刷新设置的图我加在问题里了
    2022-10-13 09:10 
  • LTC朝 LTC朝 回复 lxy2(提问者) 我做过一个跟你这个需求完全一样的 ,而且我是5分钟刷新一次。用的是定时刷新插件。也会偶尔出现这个问题。我觉得是频繁刷新加载导致的,偶尔加载时间过长导致报错,目前应该没有太好的处理办法,只能出现了手动刷新。我现在采用的办法是在body中加了一个定时刷新的js,每半个小时将整个决策报表刷新一次
    2022-10-13 09:12 
最佳回答
0
用户k6280494Lv6资深互助
发布于2022-10-13 09:20

setTimeout(function() {

    //隐藏报表块REPORT0的滚动条(此报表块名为REPORT0,根据具体情况修改)

    $("div[widgetname=REPORT0]").find(".frozen-north")[0].style.overflow = "hidden";

    $("div[widgetname=REPORT0]").find(".frozen-center")[0].style.overflow = "hidden";

}, 1000);

window.flag = true;

//鼠标悬停,滚动停止  

setTimeout(function() {

    $(".frozen-center").mouseover(function() {

        window.flag = false;

    });

    //鼠标离开,继续滚动  

    $(".frozen-center").mouseleave(function() {

        window.flag = true;

    });

    var old = -1;

    var interval = setInterval(function() {

        if(window.flag) {

            currentpos = $("div[widgetname=REPORT0]").find(".frozen-center")[0].scrollTop;

            if(currentpos == old) {

                $("div[widgetname=REPORT0]").find(".frozen-center")[0].scrollTop = 0;

            } else {

                old = currentpos;

                //以25ms的速度每次滚动1.5PX  

                $("div[widgetname=REPORT0]").find(".frozen-center")[0].scrollTop = currentpos + 1.5;

            }

        }

    }, 25);

}, 1000);

  • lxy2 lxy2(提问者) 这代码跟我的一样啊,只是我多了一句判断的
    2022-10-13 09:24 
  • 2关注人数
  • 429浏览人数
  • 最后回答于:2022-10-13 09:20
    请选择关闭问题的原因
    确定 取消
    返回顶部