Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Canvas, Polygon lub Path a zdażenie HOVER, Czy elementy na CANVAS też są zawsze kwardatami jak w HTML?
adbacz
post
Post #1





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Używam biblioteki http://fabricjs.com/ do wygenerowania tła z kilkoma interaktywnymi elementami. Chodzi mi o dwa efekty, pierwszy jest taki, że po najechaniu ma się zmienić tło, a drugi, ze po kliknięciu przejdzie na konkretną podstronę. Wiem jak wykonać obie te rzeczy, jednak martwi mnie rzecz, która jest normalna w HTML i nie wiem czy też tak jest w Canvas, czy ja robie cos źlę.

Na Canvas rysuję nieregularny kształt, ale gdy przychodzi czas na HOVER, to element tak jakby zaczyna się od najwyżej (lub najwczesniej) położonego punktu, a kończy na najniżej (lub najdalej) położonym. Przykład poniżej:
[code]
00000000000000000000
00000010000000000000
00000111110000000000
00000011111111100000
00000011111111100000
00000000111100000000
00000000000000000000
[code]
1 - oznacza pole figury
0 - oznacza pole canvas

Mimo, że w linii 2, mamy tylko jedną jedynkę, to nieważne na które zero w tej linii najedziemy aż do momentu końca jedynek w danej kolumnie w niższych rzedach, to zdarzenie HOVER się wykonuje. Czyli wygląda na to, że pomimo wyświetlania wielokątu czy PATH jako figury nieregularnej, to tak na prawę na CANVAS ona i tak jest regularna (prostokąt).

Czy to normalne zjawisko, czy ja musiałem zrobić coś źle w kodzie, że mi tak to działa?

Ten post edytował adbacz 7.04.2015, 11:38:51
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 809
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Widocznie tak działa, że zdarzenie jest przypięte do boundingbox elementu.
http://fabricjs.com/hovering/
Go to the top of the page
+Quote Post
adbacz
post
Post #3





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Użyłem biblioteki http://createjs.com/ i jest o wiele lepiej. Najwyraźniej autor Fabric.js robi tak jak napisałeś @trueblue i stąd takie zachowanie.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 19:42