一、场景汇总
- tab切换、反复刷新等操作,导致frm的自适应异常,出现空白块.
- 浏览器缩放,报表块单元格出现多余边框线
- 浏览器窗口发生变化,由于自适应影响图表重新绘制,造成坐标轴显示顺序异常
二、解决方案
1、决策报表
参考js:
- //给表单body添加初始化js事件:
- $(window).resize(function() {
- var width = FR.windowWidth;
- var height = FR.windowHeight;
- var from = _g().getWidgetByName('form')
- if (form.oriWidth === width && form.oriHeight === height) {
- return;
- }
- form.oriWidth = width;
- form.oriHeight = height;
- form.loadContentPane(true);
- });
复制代码
2、普通报表
参考js:- //分页预览添加加载结束事件:
- $(window).resize(function() {
- window.location.reload()
- });
- //如果还有滚动条,可以加下面这句隐藏
- /*
- setTimeout(function() {
- $('#content-container').css("overflow", "hidden");
- }, 100)*/
复制代码
三. 额外场景补充
如果决策报表使用了上述js,同时写了报表块滚动的JS,则滚动JS会被上述JS所影响,导致滚动速度在缩放后越来越快,即使添加了清除定时器的语句也不行。解决方案为修改滚动JS,格式如下:
- setTimeout(function() { //隐藏报表块report0的滚动条(此报表块名为report0,根据具体情况修改)
-
- $("div[widgetname=REPORT1]").find(".frozen-north")[0].style.overflow = "hidden";
- $("div[widgetname=REPORT1]").find(".frozen-center")[0].style.overflow = "hidden";
- }, 200);
- window.flag = true;
- if (window.interval) {
- clearInterval(window.interval);
- } //鼠标悬停,滚动停止
- 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;
- if (window.interval) {
- clearInterval(window.interval);
- }
- window.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; //以25ms的速度每次滚动1.5PX
-
- $("div[widgetname=REPORT1]").find(".frozen-center")[0].scrollTop = currentpos + 1.5;
- }
- }
- }, 25);
- }, 1000);
复制代码
编辑于 2021-7-5 22:44
|