【问题标题】:How to place text object successfully under an image/polygon object with jsxgraph 0.99.7?如何使用 jsxgraph 0.99.7 在图像/多边形对象下成功放置文本对象?
【发布时间】:2019-02-06 05:45:23
【问题描述】:

我想简单地将一个文本对象放在我使用 jsxgraph 创建的图像对象下。

  • 尝试设置文本对象层:2 和图像对象层:7。
  • 尝试设置 board.options.layer.text=2,然后创建文本对象,然后再次设置 board.options.layer.text=9。

该对象在调查时确实给出了正确的图层值,但它并没有在视觉上这样做。这适用于非文本对象。这会是与文本相关的错误吗?

【问题讨论】:

    标签: layer jsxgraph


    【解决方案1】:

    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 或表单标签或图像……所以,您也可以考虑将图像放入文本元素中。

    【讨论】:

    • 感谢 Alfred 的精彩回复 - 我也感谢您的宝贵时间。我发现这对我有用 - 文本确实位于其他对象下方。当您希望使用其他内容时,它不能很好地工作,但它确实可以工作。所以你可以将图像放入文本元素中,你说?
    猜你喜欢
    • 2017-04-28
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-06
    相关资源
    最近更新 更多