跑马灯
一个决策报表上放置一个以上的跑马灯,只有一个可以自动翻滚。其他都不可以 怎么解决?
FineReport 用户333e83775152 发布于 2021-9-10 08:26
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
橙子超人Lv5见习互助
发布于2021-9-10 09:13(编辑于 2021-9-10 09:16)

你好,请问问题解决了嘛? 

没有的话可以用这个js

setTimeout(function(){

var wid=($("div[widgetname='REPORTA']").width()-17)+'px'; //获取报表块宽度

$("div[widgetname='REPORTA']").css('width',wid); //重置报表块宽度

var height=($("div[widgetname='REPORTA']").height()-17)+'px'; //获取报表块高度

$("div[widgetname='REPORTA']").css('height',height); //重置报表块高度

},1000);

window.flag2 = true;

var self2 = this;

//鼠标悬停,滚动停止

setTimeout(function() {

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

window.flag2 = false;

});

//鼠标离开,继续滚动

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

window.flag2 = true;

});

var old = -1;

var interval = setInterval(function() {

if (!self2.isVisible()) {

return;

}

if (window.flag2) {

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

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

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

} else {

old = currentpos1;

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

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

}

}

},

60);

},

1000);

然后其他的报表块要滚动的话就在body事件在建一个初始化

类似于这样:

setTimeout(function(){

var wid=($("div[widgetname='REPORTB']").width()-17)+'px'; //获取报表块宽度

$("div[widgetname='REPORTB']").css('width',wid); //重置报表块宽度

var height=($("div[widgetname='REPORTB']").height()-17)+'px'; //获取报表块高度

$("div[widgetname='REPORTB']").css('height',height); //重置报表块高度

},1000);

window.flag1 = true;

var self1 = this;

//鼠标悬停,滚动停止

setTimeout(function() {

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

window.flag1 = false;

});

//鼠标离开,继续滚动

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

window.flag1 = true;

});

var old = -1;

var interval = setInterval(function() {

if (!self1.isVisible()) {

return;

}

if (window.flag1) {

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

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

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

} else {

old = currentpos1;

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

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

}

}

},

60);

},

1000);

最佳回答
0
luojian0323Lv7资深互助
发布于2021-9-10 08:29

image.png

$scroll能否执行决定着你的报表滚动条能否自动滚动

$scroll又是从$report来的

所以查看你的代码是否有明确具体的报表块名称,不要都写一模一样的代码。

最佳回答
0
snrtuemcLv8专家互助
发布于2021-9-10 08:32

多报表块滚动,报表块名称需要大写,报表块需要设置冻结,每个报表块可以拷贝代码,但是注意修改报表块名

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

  • 5关注人数
  • 626浏览人数
  • 最后回答于:2021-9-10 09:16
    请选择关闭问题的原因
    确定 取消
    返回顶部