2010-08-16 10 views
5

Używając flot jQuery, istnieje sposób na umożliwienie wyboru przedmiotów poprzez najechanie na nich. W opcjach kratka [mouseActiveRadius] może być ustawiona na liczbę, która wskaże żądaną długość promienia koła wyboru.Flot mousehover algorytm do wykrywania wyłącznie na podstawie lokalizacji x?

Na przykład, jeśli ustawisz go na 10, każde zdarzenie najedź myszką podświetli najbliższy punkt w okręgu o promieniu 10 pikseli.

Chciałbym jednak, aby flot oznaczał położenie punktu najbliższego w kierunku X (zamiast najbliższego okresu).

EG w tym przykładzie: punkt 1 jest oczywiście o wiele bliższy x niż punkt 2, ale nadal chcę, aby flot wybrał punkt 2, ponieważ jest bliżej kierunku x.

  x 
1 







      2 

Czy istnieje sposób to zrobić z wtyczkami/zbudowany w funkcjonalności, lub muszę napisać funkcję powiększenia domyślne zachowanie Flot za?

Odpowiedz

4

Jedyny sposób, jaki znalazłem, to zmienić źródło. (To jest do bani ok, ale to często lepiej dobrze skomentował Hack niż un-utrzymaniu obejście)

Znajdź ten kod: (function findNearbyItem(), na linii 2278 na mojej rewizji)

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; 

Zmiana:

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; 

Mam nadzieję, że ta odpowiedź pomoże każdemu z tym samym problemem.

0

y = 0 nie będzie działać dla dużych wartości y. y = axisy.datamin rozwiązuje problem.

Powiązane problemy