Flot MouseHover Алгоритм для обнаружения чисто на основе х местоположения? - PullRequest
5 голосов
/ 17 августа 2010

Используя флот jQuery, есть способ выбора элементов, наведя на них курсор мыши. В опциях grid [mouseActiveRadius] может быть установлен в число, чтобы указать желаемую длину радиуса круга выбора.

Например, если вы установите его равным 10, то любое событие при наведении мыши будет выделять ближайшую точку в круге с радиусом 10 пикселей.

Тем не менее, я хочу вместо этого указать flot навести точку, которая является самой близкой в ​​направлении x (вместо периода ближайшей точки).

Например, в этом примере: точка 1, очевидно, намного ближе к х, чем точка 2, но я все еще хочу, чтобы flot выбрал точку 2, поскольку она ближе в направлении х.

           x
1







          2

Есть ли способ сделать это с помощью плагинов / встроенных функций или мне нужно написать функцию, расширяющую поведение по умолчанию для flot?

Ответы [ 2 ]

4 голосов
/ 09 апреля 2011

Единственный способ, который я нашел, это изменить источник.(это отстойно нормально, но часто лучше хакер с хорошим комментарием, чем необслуживаемый обходной путь)

Найдите этот код: (function findNearbyItem(), в строке 2278 моей ревизии)

if (s.lines.show || s.points.show) {
                    for (j = 0; j < points.length; j += ps) {
                        var x = points[j], points[j + 1];
                        if (x == null)
                            continue;

Измените на:

if (s.lines.show || s.points.show) {
                    for (j = 0; j < points.length; j += ps) {
                        var x = points[j], y =0; // points[j + 1];
                        if (x == null)
                            continue;

Надеюсь, этот ответ поможет кому-нибудь с такой же проблемой.

0 голосов
/ 23 января 2014

y = 0 не будет работать для больших значений y.y = axisy.datamin решает проблему.

...