决策报表报表块滚动开启自动刷新后,鼠标悬浮不暂停

决策报表报表块滚动开启自动刷新后,鼠标悬浮不暂停

setTimeout(function() {     //隐藏报表块report0的滚动条(此报表块名为report0,根据具体情况修改)     $("div[widgetname=REPORT0_1]").find(".frozen-north")[0].style.overflow = "hidden";     $("div[widgetname=REPORT0_1]").find(".frozen-center")[0].style.overflow = "hidden"; }, 100); var flag = true; //鼠标悬停,滚动停止   setTimeout(function() {     $("div[widgetname=REPORT0_1]").find(".frozen-center").mouseover(function() {         flag = false;     });     //鼠标离开,继续滚动       $("div[widgetname=REPORT0_1]").find(".frozen-center").mouseleave(function() {         flag = true;     });     var old = -1;     var interval = setInterval(function() {         if(flag) {             currentpos = $("div[widgetname=REPORT0_1]").find(".frozen-center")[0].scrollTop;             if(currentpos == old) {                 $("div[widgetname=REPORT0_1]").find(".frozen-center")[0].scrollTop = 0;             } else {                 old = currentpos;                 //以25ms的速度每次滚动1.5PX                  $("div[widgetname=REPORT0_1]").find(".frozen-center")[0].scrollTop = currentpos + 1.5;             }         }     }, 25); }, 1000);

不自动刷新前鼠标放上去可以暂停,数据自动监测刷新后,鼠标放上去就无法暂停了

FineReport 用户3aCDb8859785 发布于 2023-4-21 08:35
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
YmengLv5中级互助
发布于2023-4-21 09:22(编辑于 2023-4-27 10:52)

image.png

这段代码改成下面这样,var flag=true改成window.flag = true;刷新后悬浮就会暂停

window.flag = true; //鼠标悬停,滚动停止

$("div[widgetname=REPORT0_1]").on("mouseover",".frozen-center",function() {

    window.flag= false;

});

//鼠标离开,继续滚动

$("div[widgetname=REPORT0_1").on("mouseleave",".frozen-center",function() {

    window.flag= true;

});

image.png

  • 用户3aCDb8859785 用户3aCDb8859785(提问者) SyntaxError: missing catch or finally after try 报错
    2023-04-27 08:33 
  • Ymeng Ymeng 回复 用户3aCDb8859785(提问者) 这个报错好像跟上面的代码没有关系,你复制一下你改后的代码看下,或者上传个内置模板,代码按上面那样改是没有问题的
    2023-04-27 09:26 
  • 用户3aCDb8859785 用户3aCDb8859785(提问者) 回复 Ymeng setTimeout(function() { //隐藏报表块report0的滚动条(此报表块名为report0,根据具体情况修改) $(\"div[widgetname=REPORT0_1]\").find(\".frozen-north\")[0].style.overflow = \"hidden\"; $(\"div[widgetname=REPORT0_1]\").find(\".frozen-center\")[0].style.overflow = \"hidden\"; }, 100); window.flag = true; //鼠标悬停,滚动停止 $(\"div[widgetname=REPORT0_1]\").on(\"mouseover\",\".frozen-center\",function() { window.flag= false; }); //鼠标离开,继续滚动 $(\"div[widgetname=REPORT0_1\").on(\"mouseleave\",\".frozen-center\",function() { window.flag= true; }); var old = -1; var interval = setInterval(function() { if(flag) { currentpos = $(\"div[widgetname=REPORT0_1]\").find(\".frozen-center\")[0].scrollTop; if(currentpos == old) { $(\"div[widgetname=REPORT0_1]\").find(\".frozen-center\")[0].scrollTop = 0; } else { old = currentpos; //以25ms的速度每次滚动1.5PX $(\"div[widgetname=REPORT0_1]\").find(\".frozen-center\")[0].scrollTop = currentpos + 1.5; } } }, 25); }, 1000); 这样的改的
    2023-04-27 10:06 
  • Ymeng Ymeng 回复 用户3aCDb8859785(提问者) 看我图片,代码里少了setTimeout(function(){,这个写漏了
    2023-04-27 10:53 
  • 用户3aCDb8859785 用户3aCDb8859785(提问者) 回复 Ymeng 十分感谢,完美解决.
    2023-04-27 13:27 
最佳回答
0
snrtuemcLv8专家互助
发布于2023-4-21 08:43

这个会冲突的

建议二选一把

  • 2关注人数
  • 734浏览人数
  • 最后回答于:2023-4-27 10:52
    请选择关闭问题的原因
    确定 取消
    返回顶部