同一个决策报表,有2个报表块都需要滚动怎么设置?现在是滚动一个

setTimeout(function(){

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

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

},100);

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=$("#frozen-center")[0].scrollTop;  

   if (currentpos==old){

   $("#frozen-center")[0].scrollTop=0;

     }  

   else {  

      old=currentpos;  

      $("#frozen-center")[0].scrollTop=currentpos+1.5;  

        }  

      }

    },40);

},3000)

FineReport lt1873 发布于 2023-5-15 11:28 (编辑于 2023-5-15 11:29)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
snrtuemcLv8专家互助
发布于2023-5-15 11:40

改成这个js语句,里面的报表块名字改成你自己的,然后window.flag,old, window.tag分window.flag1,old1, window.tag1和window.flag2,old2, window.tag2这样的格式

=====================================================

setTimeout(function() {  

    //隐藏报表块report的滚动条

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

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

}, 200);  

window.flag = true;  

//鼠标悬停,滚动停止    

setTimeout(function() {  

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

        window.flag = false;  

    });  

    //鼠标离开,继续滚动    

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

        window.flag = true;  

    });  

  var old = -1; 

    // 清除定时器

    if(window.tag!=null){

    window.clearInterval(window.tag);

    }

    //调用定时器

     window.tag  = setInterval(function() {  

        if(window.flag) {  

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

            if(currentpos == old) {  

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

            } else {  

                old = currentpos;  

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

            }  

        }  

    }, 50);  

}, 1000);

最佳回答
0
runnerLv7资深互助
发布于2023-5-15 11:34(编辑于 2023-5-15 11:35)

在加一个事件;然后把js复制进去,修改报表块名称就可以了

最佳回答
0
YmengLv5中级互助
发布于2023-5-15 11:42(编辑于 2023-5-15 11:51)

如果你两个报表块结构一样,都有冻结行的话,代码复制后改里面对应组件名,然后window.flag改为window.flag1,代码写在对应的报表块初始化事件

你上面代码有问题,要改成这样,虽然你想用$("#frozen-center")获取所有表格,但是$("#frozen-center")[0]只会取到第一个,所以才会只滚动一个

setTimeout(function(){

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

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

},100);

window.flag=true;

setTimeout(function(){   

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

{  

  window.flag=false;  

  })

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

{  

  window.flag=true; 

  })  

var old=-1;   

var interval=setInterval(function()  

{

if(window.flag){

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

   if (currentpos==old){

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

     }  

   else {  

      old=currentpos;  

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

        }  

      }

    },40);

},3000)

最佳回答
0
大林3143511Lv5中级互助
发布于2023-5-15 12:15

我也遇到过这样的问题,是这样解决的:

1684124077401.png

  • 4关注人数
  • 921浏览人数
  • 最后回答于:2023-5-15 12:15
    请选择关闭问题的原因
    确定 取消
    返回顶部