在Highcharts中不正确地显示绘图带图标
Incorrectly displayed plot band icon in Highcharts
我试图在Highcharts中创建一个带有绘图带的图形,我想在其中插入一个图标到绘图带。
一切都很好,除了我不能让图标显示在实际的系列线下面。我将图标的zIndex设置为1,series设置为2,但它似乎没有做任何事情。
我看了这里的文档:http://api.highcharts.com/highcharts/xAxis.plotBands.zIndex
但是它应该在此基础上工作,但它没有,当我使用文本作为标签时,它工作,但不是图像,对象没有特定的类或ID,所以我可以用jquery瞄准它并手动设置css。
为了说明我的观点,我做了一个小提琴:
http://jsfiddle.net/qwfj4x3j/我用了
{
color: null,
zIndex: -1,
from: 3.5,
to: 4.5,
label: {
text: "<img src='http://simpleicon.com/wp-content/uploads/rain.png' style='width:100px;z-index:-1'>",
verticalAlign: 'top',
useHTML: true,
y: 25
}
},
您可以看到,我设置了绘图带和实际图像的zIndex,并为该系列设置了更高的zIndex,但它不起作用。
好的,所以最后我找到了一个非常优雅的解决方案:)我给所有的图像一个类,然后在图形呈现后,我调用jquery命令,目标类的所有父元素,跨度,我最初需要的目标,但不能,因为它没有类或id。现在我可以将所有这些作为图像的父类并指定z-index为-1这样就可以了
如果以这种方式呈现图像,HTML <img>
将呈现在svg的顶部-这就是图像覆盖svg元素的原因。相反,您可以使用chart.renderer.image()方法与axis.toPixels()方法结合使用,以像素为单位获取x, y属性。
var img;
function renderImage() {
var chart = this;
img = chart.renderer.image(
'http://simpleicon.com/wp-content/uploads/rain.png',
chart.xAxis[0].toPixels(0),
chart.yAxis[0].toPixels(10),
150,
150
)
.add();
}
function redrawImage() {
img.attr({
x: this.xAxis[0].toPixels(0),
y: this.yAxis[0].toPixels(10)
});
}
示例:http://jsfiddle.net/qwfj4x3j/2/
要使图像像情节线一样响应,您需要调整重绘事件的x, y属性。
相关文章:
- Javascript更改图标
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 单击更改图标并通过javascript添加一个css类
- 我希望只有在我滚动页面后才能显示我的返回页首图标
- HTML画布在绘图后立即擦除矩形
- 如何更改角度谷歌地图上的集群图标
- 如何在JS Leatflet绘图插件中获取圆的坐标
- simpleweather js天气图标
- 更改图层中单个矢量特征的图标
- 使用Angular单击时更改特定图示符图标的颜色
- 加载图像时加载图标
- 在一个页面中具有多个捕捉绘图和捕捉内容
- 可以'点击汉堡包图标后,菜单无法正常打开
- SVG手写字母绘图动画
- 持久页面操作图标
- 点击图标是't在量角器上工作
- 通过单击同一图标使菜单出现和消失
- 绘图悬停文本未显示
- 在for循环中使用多维数组设置google.maps.Marker图标
- 在Highcharts中不正确地显示绘图带图标