#checkbox #jsxgraph
#флажок #jsxgraph
Вопрос:
Предположим, что в ваш JSXGraph добавлены следующие элементы board
:
var checkbox1 = board.create('checkbox', [1, 0.5, 'Click me']);
var p = board.create('point', [1, 0], {
visible: function() {return checkbox1.Value();},
label:{offset:[15,15]}
});
Почему наличие функции внутри visible
изменяет значения, заданные внутри label
? (Комментируя строку visible...
, вы замечаете разницу.)
Ответ №1:
Да, действительно, использование функции в качестве значения для атрибута visible
, похоже, влияет на положение метки. Но проблема еще более сложная: значение атрибута anchorY
метки по умолчанию middle
равно , т.Е. При offset
установленном значении атрибута [0,0]
метка центрируется по вертикали рядом с точкой p
. Однако, чтобы иметь возможность размещать метку по вертикали по центру, JSXGraph должен знать размер текстового поля метки. К сожалению, если метка создается с visible:false
помощью, размер текста не может быть определен (на данный момент).
Короче говоря, проблема в том, что точка создается с visible:false
помощью . Если ваш код будет
var checkbox1 = board.create('checkbox', [1, 0.5, 'Click me']);
var p = board.create('point', [1, 0], {
visible: function() {return !checkbox1.Value();},
label:{offset:[15,15]}
});
положение метки соответствует ожидаемому.
Возможным обходным путем было бы указать пользователю другое значение для anchorY
like:
var checkbox1 = board.create('checkbox', [1, 1.5, 'Click me']);
var p = board.create('point', [1, 0], {
visible: function() {return checkbox1.Value();},
label:{offset:[15,0], anchorY: 'bottom'}
});
Смотрите его в прямом эфире на https://jsfiddle.net/1u7geLar /