我想简单地将一个文本对象放在我使用 jsxgraph 创建的图像对象下。
- 尝试设置文本对象层:2 和图像对象层:7。
- 尝试设置 board.options.layer.text=2,然后创建文本对象,然后再次设置 board.options.layer.text=9。
该对象在调查时确实给出了正确的图层值,但它并没有在视觉上这样做。这适用于非文本对象。这会是与文本相关的错误吗?
JSXGraph 区分两种类型的文本:display:'html'
和display:'internal'
. 前一种文本元素使用 HTML 标记,并且始终严格“高于”任何 JSXGraph 构造(因此忽略层结构)。后一种类型的文本元素遵循层结构。默认值为display:'html'
. 这是一个示例(https://jsfiddle.net/8xms49pu/2/):
var circ = board.create('circle', [[0, 0], 3],
{fillColor: 'yellow', fillOpacity: 0.8});
var txt1 = board.create('text', [1, 1, 'HTML'], {layer: 1});
var txt1 = board.create('text', [-3.2, -1, 'internal'],
{layer: 1, display: 'internal'});
图像可以分层。这意味着,还必须使用display:'internal'
. 这是一个示例(https://jsfiddle.net/jdw7z1nq/1/):
var im = board.create('image', ['https://jsxgraph.org/wp/img/logo_tw.png', [-3, -3], [6, 6]],
{layer: 10});
var circ = board.create('circle', [[0,0], 3],
{fillColor: 'yellow', layer: 6});
var txt = board.create('text', [1, 1, 'Hello'],
{layer: 5, display: 'internal'});
HTML 文本的优点是它们可以包含任何类型的 HTML 内容,例如 MathJax 或表单标签或图像……因此,您也可以考虑将图像放入文本元素中。