在Highcharts中捕获全屏逃逸事件
我需要在highcharts中从全屏获取escape键的事件,以便在从全屏转出后可以调整容器的高度。highcharts从浏览器请求全屏 您可以监听各种fullscreenchange事件,并根据这些事件执行一些操作:在Highcharts中捕获全屏逃逸事件,highcharts,Highcharts,我需要在highcharts中从全屏获取escape键的事件,以便在从全屏转出后可以调整容器的高度。highcharts从浏览器请求全屏 您可以监听各种fullscreenchange事件,并根据这些事件执行一些操作: if (document.addEventListener) { document.addEventListener('webkitfullscreenchange', exitHandler, false); document.addEventListener('moz
if (document.addEventListener) {
document.addEventListener('webkitfullscreenchange', exitHandler, false);
document.addEventListener('mozfullscreenchange', exitHandler, false);
document.addEventListener('fullscreenchange', exitHandler, false);
document.addEventListener('MSFullscreenChange', exitHandler, false);
}
function exitHandler() {
if (!document.webkitIsFullScreen && !document.mozFullScreen && !document.msFullscreenElement) {
console.log('Exiting fullscreen. Doing chart stuff.');
setContainerHeight(); // do your magic
}
}
查看或查看检测全屏的一般情况。虽然上述方法有效,但我认为我会放弃我的解决方案,因为它不适合我的环境(如前所述,同一页面上有多个图表;链接到具有不同需求的模块的部分) 当图表退出全屏模式时,我使用Highcharts来执行代码
响应:{
规则:[{
条件:{
//一个回调函数,用于完全控制何时应用响应规则。如果应用,则返回true
回调:函数(){
如果(this.chartHeight>(window.innerHeight/2)| | this.chartWidth>(window.innerWidth/2)){
log('responsive cb true:',this.renderTo.id);
_fsChartID=this.renderTo.id;
返回true;
}否则{
log('responsive cb false:',this.renderTo.id);
如果(this.renderTo.id===\u fsChartID){//仅在退出全屏时点击
_fsChartID=null;//重置_fsChartID以防止无限循环
this.redraw();//退出全屏时调用所需的任何函数
}
返回false;
}
}
}
}]
}
基本上:
\u fsChartID
以跟踪哪个图表处于全屏模式。对我来说,这被定义为模块中需要的全局变量- 如果是,请重置
变量并执行所需操作\u fsChartID
- 否则,返回false作为正常值
请注意,我只是调用了这个.redraw(),因为我的问题与退出全屏时图表未正确重画有关。您是否可以在JSFIDLE上提供任何示例?上面的代码是否不够?你能给我一个你的设置的JSFIDLE吗?我可以给它添加所需的代码。