JS自动播放数据点提示(试用大屏)
最近做大屏,需要用到自动播放数据点提示。PS:数据不变化时,也要求循环播放数据点提示。
首先,我开启了图形上自带的“自动数据提示功能”,但是这个功能是数据发生变化,才会显示数据提示,不太符合我的需求。
然后,搜索了帮助文档,找到了相关的资料:自动播放数据点提示-http://help.finereport.com/doc-view-2087.html
这个是用一个按钮来控制是否启用自动播放的功能,但是大屏上显示按钮不太合适,所以需要在此方案的基础上稍作改变。(个人JS比较渣,非常感谢帆软客服1027和技术人员的耐心解答)
环境:FR8.0,表单
步骤:
(1)在表单上放一个按钮,然后按钮上添加一个点击事件,代码如下(与帮助文档上的写法一致,只是增加了一个延时,因为我的表单上有一个背景图片,加载会慢,不加延时,JS会报错)
setTimeout(function(){
var vanchart = FR.Chart.WebUtils.getChart('chart0').vanCharts.charts,
openAutoTooltipCarouselDelay = 1000;
openAutoTooltipCarousel();
function openAutoTooltipCarousel(ele){
var series = vanchart.series; // 获取chart下的所有系列
// 获取系列第一个系列的所有数据点
// 注意,每次只能显示一个数据点提示,如果需要显示多个数据点的提示内容,可以在plotOptions里面开启数据提示共享
var points = series.points,
pointsLen = points.length;
// 默认的提示轮播从第一个点开始
var pointIndex = 0;
window.openAutoTooltipCarouselTimer = setInterval(function (){
// 遍历series下面每个系列的点
// 使用vanchart.showTooltip依次展示不同索引的数据点
vanchart.showTooltip(points);
pointIndex < pointsLen - 1 ? pointIndex++ : pointIndex = 0;
}, openAutoTooltipCarouselDelay)
}
},1000);(2)在form上,增加一个初始化事件,实现点击按钮的操作,代码如下:
setTimeout(function(){
var Widget = this.options.form.getWidgetByName("button0");
},1000); 然后点击预览,就可以了。可详见附件。
方法由在线技术支持的客服1027(不知道名字)提供,我先点个赞。
----------------------------------------------------------分割线--------------------------------------------------------------------
补充:
刚刚按照女神@cherishdqy说的方式试过了,把代码直接放在表单的form或body的初始化事件里就可以实现了,很方便,比上面说的方法简单{:10_278:}http://bbs.fanruan.com/static/image/smiley/gqbb/05.gifhttp://bbs.fanruan.com/static/image/smiley/gqbb/05.gif。 编辑于 2017-11-22 10:13
编辑于 2017-11-22 10:13