决策报表报表快的滚动监听事件不生效的问题

我对report0报表块写了如下js:

setTimeout(function() {

var a = 'REPORT0'; 

var b = a.toUpperCase(); 

var wid = ($("div[widgetname='" + b + "']").width() - 17) + 'px'; 

$("div[widgetname='" + b + "']").css('width', wid); 

var height = ($("div[widgetname='" + b + "']").height() - 16) + 'px'; 

$("div[widgetname='" + b + "']").css('height', height); 

}, 100);

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;

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

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

     }

    }

   },

   100);

 },

 1000);

为什么报表快只顾着自己滚动鼠标移上去没有反应?

FineReport 普普通通的len 发布于 2021-10-27 10:31
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
普普通通的lenLv3见习互助
发布于2021-10-27 12:17

setTimeout(function() {

AutoScroll(["REPORT0", "REPORT4", "REPORT5"]); //此处根据实际报表需求添加REPORT块名称

//定义需要跑马灯效果的报表块名字,兼容大小写

}, 2000);

function AutoScroll(e) {

for (i = 0; i < e.length; i++) {

(function(e, i) {

scroll(e, i);

})(e, i);

}

}

function scroll(e, i) {

var $report = $("div[widgetname=" + e[i].toUpperCase() + "]");

//获取对应report的div元素

var $scroll;

if ($report.find(".frozen-center").length != 0) {

$scroll = $report.find(".frozen-center");

} else if ($report.find(".scrollDiv").length != 0) {

$scroll = $report.find(".scrollDiv");

} else {

$scroll = $report.find(".reportContent");

}

//判断是否冻结以及是否安装自定义滚动条插件

var flag = eval("window.flag" + i);

//设置全局flag,控制悬停

if (interval) {

clearInterval(interval);

}

//清除定时器,避免越滚越快

var interval = eval("window.interval" + i);

$report.find("#frozen-center").css('overflow-x', 'hidden');

$report.find("#frozen-center").css('overflow-y', 'hidden');

$report.find("#frozen-north").css('overflow-x', 'hidden');

$report.find("#frozen-north").css('overflow-y', 'hidden');

//冻结情况下隐藏滚动条

$report.find(".reportContent").css('overflow-y', 'hidden');

$report.find(".reportContent").css('overflow-x', 'hidden');

//非冻结情况下隐藏滚动条

flag = true;

$scroll.mouseover(function() {

flag = false;

                $report.find("#frozen-center").css('overflow-x', 'hidden');

$report.find("#frozen-center").css('overflow-y', 'auto');

$report.find("#frozen-north").css('overflow-x', 'hidden');

$report.find("#frozen-north").css('overflow-y', 'auto');

//鼠标悬浮时避免滚轮功能被屏蔽,显示滚轮

})

//鼠标悬浮,滚动停止

$scroll.mouseleave(function() {

flag = true;

$report.find("#frozen-center").css('overflow-x', 'hidden');

$report.find("#frozen-center").css('overflow-y', 'hidden');

$report.find("#frozen-north").css('overflow-x', 'hidden');

$report.find("#frozen-north").css('overflow-y', 'hidden');

})

//鼠标离开,继续滚动

var old = -1;

interval = setInterval(function() {

if (flag) {

currentpos = $scroll[0].scrollTop;

//获取距顶部距离

if (currentpos == old) {

$scroll[0].scrollTop = 0;

//若已到达底部,则重置

} else {

old = currentpos;

$scroll[0].scrollTop = currentpos + 1.0;

//若未到达底部,则向下移动1.5像素

}

}

}, 100);

//以25ms的频率执行

}

最佳回答
0
战斗老虎机Lv2见习互助
发布于2021-10-27 10:35

setTimeout(function() {

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

    $("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;

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

            }

        }

    },

    60);

},

1000);

拿走不谢

  • 1关注人数
  • 353浏览人数
  • 最后回答于:2021-10-27 12:17
    请选择关闭问题的原因
    确定 取消
    返回顶部