Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zmiana koloru tła w area
batman
post 2.07.2012, 19:01:02
Post #1





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Problem dosyć nietypowy i w większości przypadków opisywany jako niemożliwy do obejścia.
Potrzebuję przy pomocy CSS (ewentualnie JavaScript) nadać kolor tła w tagu area. Nie byłoby w tym nic trudnego, gdyby nie dwie drobne przeszkody - po pierwsze area może zawierać kilkanaście (a nawet kilkadziesiąt) punktów, które tworzą bardzo nieregularny kształt. Po drugie, współrzędne punktów wstrzykiwane są do atrybutu coords przy pomocy JavaScript, co wyklucza użycie większości popularnych bibliotek js. Jak to zrobić?


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
kamil4u
post 2.07.2012, 19:58:34
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Od razu napiszę, że nigdy nie miałem styczności z takim problemem, ale może uda mi się jakoś Ci pomóc. Dlatego też mam takie pytanie:

Cytat
Po drugie, współrzędne punktów wstrzykiwane są do atrybutu coords przy pomocy JavaScript, co wyklucza użycie większości popularnych bibliotek js

Dlaczego wyklucza? Nie mogę sobie wyobrazić, że nie da się tego połączyć. Może pokusiłbyś się o proste demo np. na http://jsfiddle.net/ .


--------------------
Go to the top of the page
+Quote Post
!*!
post 2.07.2012, 20:09:34
Post #3





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


batman - jesteś moderatorem i nie wkleiłeś żadnego kodu? tongue.gif

Cytat
gdyby nie dwie drobne przeszkody - po pierwsze area może zawierać kilkanaście (a nawet kilkadziesiąt) punktów, które tworzą bardzo nieregularny kształt.

Nie bardzo rozumiem, tło koliduje z tymi kształtami/elementami czy odwrotnie? I czy jest to tylko kolor, a nie obraz?


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
batman
post 2.07.2012, 20:54:39
Post #4





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat(!*! @ 2.07.2012, 21:09:34 ) *
batman - jesteś moderatorem i nie wkleiłeś żadnego kodu? tongue.gif

Moderator moderatorem, ale kodu udostępnić nie mogę ;)

Opiszę problem inaczej.
Mam na stronie kilkaset elementów. Do każdego elementu przypisane są współrzędne określające jakiś obszar obrazka. Obszar ten posiada nieregularne kształty, więc zastosowanie grafiki wymagałoby wycięcie kilkuset niewielkich grafik w kilku kolorach każda. Po najechaniu na każdy z elementów, na obrazku ma zaznaczyć się zdefiniowany wcześniej obszar (w zależności od parametrów - w różnych kolorach). I tutaj pojawia się problem, ponieważ w zdarzeniu onmouseover przekazuję do area współrzędne. Współrzędne te działają, obszar się "wyświetla" na obrazku, ale w żaden sposób nie mogę zmienić jego koloru. Innymi słowy, dodaje się obszar do obrazka, ale nie możliwe jest jest ostylowanie. Znalazłem kilka rozwiązań bazujących na canvas, jednak wymagają one, by współrzędne znajdowały się w area od razu, a nie były dynamicznie przekazane.
Jak to ugryźć? Może podchodzę do problemu z niewłaściwej strony?


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
!*!
post 2.07.2012, 21:09:33
Post #5





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Nadal nie rozumiem, skoro przekazujesz przez JS dane współrzędne, to dlaczego nie możesz przekazać danych o kolorach? Jak wygląda kolizja, bo nie ma czegoś takiego "nie mogę ostylować obrazka, bo nie".


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
kamil4u
post 2.07.2012, 21:12:36
Post #6





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Cytat
Znalazłem kilka rozwiązań bazujących na canvas, jednak wymagają one, by współrzędne znajdowały się w area od razu, a nie były dynamicznie przekazane.


Jak dla mnie canvas tu pasuje. Gorzej oczywiście z IE smile.gif I nie za bardzo rozumiem, co znaczy, że "wymagają". Może da się to w łatwy sposób obejść albo ew. przepisać odpowiedni fragment kodu. Więc może się powtórzę:
Cytat
Dlaczego wyklucza? Nie mogę sobie wyobrazić, że nie da się tego połączyć. Może pokusiłbyś się o proste demo np. na http://jsfiddle.net/ .

I koniecznie dodaj linki do skryptu z canvas-em.

Cytat
ale kodu udostępnić nie mogę wink.gif

To chociaż proste demo zrób, bo nadal nie jestem pewny czy dobrze to rozumiem. Bo jednak nie jest skrypt, który dałoby się napisać w 5min, więc musisz trochę sekretów zdradzić smile.gif


--------------------
Go to the top of the page
+Quote Post
batman
post 2.07.2012, 21:43:31
Post #7





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat
I koniecznie dodaj linki do skryptu z canvas-em.

Najlepszą biblioteką, która prawie działa jest http://www.outsharked.com/imagemapster/. Prawie oznacza tutaj, że tworzy się canvas, ale niestety nie jest widoczny (sprawdzone w Firebugu). Kombinowałem ze zmianą position, z-index i kilkoma innymi. Do kodu js jeszcze nie zaglądałem.

Cytat
To chociaż proste demo zrób, bo nadal nie jestem pewny czy dobrze to rozumiem. Bo jednak nie jest skrypt, który dałoby się napisać w 5min, więc musisz trochę sekretów zdradzić smile.gif

Zrobienie dema zajmie tyle samo czasu, ile robiłem stronę, więc niestety kodem się nie podzielę wink.gif
Powód edycji: [batman]:


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
kamil4u
post 2.07.2012, 23:07:51
Post #8





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Heh. No to postaw się w naszej sytuacji. Napisałeś bardzo ogólnie jak to działa.Według mnie jedynym sensownym rozwiązaniem to canvas( jeżeli dobrze rozumiem jak to działa, a pewności nie mam ). Podałeś skrypt, który teoretycznie działa,a praktycznie "tworzy się canvas, ale niestety nie jest widoczny". No i teraz jak mamy Ci pomóc? Domyślić się czy coś jest źle w skrypcie czy może Ty gdzieś zrobiłeś błąd w swoim rozumowaniu? Czego od nas oczekujesz?

Cytat
Zrobienie dema zajmie tyle samo czasu

Demo dla mnie oznacza, że:
- weźmiesz prosty rysunek z dwoma prostokątami
- za pomocą kodu JS wygenerujesz współrzędne - nawet zwykła tablica z danymi - to najmniej ważne
- współrzędne te dodasz do tego obrazka w podobny sposób jak robisz to u siebie( odpowiednią metodą DOM-oską jak się domyślam )
- dodasz skrypt canvas-u ( tu jeszcze mniej roboty )
- wszystko połączysz w podobny sposób jak u Ciebie( tu największy problem, ale oczekuję jak najprostszego kodu na jakimś błahym przykładzie, a nie 200 linijek Twojego kodu )

Który punkt jest dla Ciebie niewykonalny/zbyt długotrwały? Jeżeli to zajmie Ci podobny czas jak zrobienie Twojego skryptu to może podziel się kodem, bo to pisania na max. 20 minut( przynajmniej tak to sobie wyobrażam i może w ciąż dokładnie nie rozumiem jak to działa ).

Musisz wykazać trochę więcej zaangażowania, bo inaczej ciężko, żebyś uzyskał sensowną odpowiedź( przynajmniej z mojej strony ).

Zachęcam, żebyś przeczytał jeszcze raz temat i zobaczył czy byłbyś w stanie komuś pomóc, gdyby napisał tak zdawkowe informacje jak Ty.

Pozdrawiam i do roboty wink.gif

Ten post edytował kamil4u 2.07.2012, 23:09:37


--------------------
Go to the top of the page
+Quote Post
batman
post 3.07.2012, 06:29:29
Post #9





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Odbiegamy od tematu wink.gif
Ponawiam pytanie. W jaki sposób nadać tło w tagu area, gdzie atrybut coords jest aktualizowany z poziomu js?


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
d3ut3r
post 3.07.2012, 07:57:34
Post #10





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

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


wykorzystałem tą samą bibliotekę Image Mapster, nie wiem tylko czy o to chodziło biggrin.gif

http://jsfiddle.net/k2Crx/2/



--------------------
http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
Go to the top of the page
+Quote Post
batman
post 3.07.2012, 08:15:31
Post #11





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat(d3ut3r @ 3.07.2012, 08:57:34 ) *
wykorzystałem tą samą bibliotekę Image Mapster, nie wiem tylko czy o to chodziło biggrin.gif

Firebug pokazuje mi błąd w js - mapArea is undefined.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
d3ut3r
post 3.07.2012, 08:42:50
Post #12





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

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


dziwnie się nie zapisała ostatnia wersja w jsfiddle, teraz powinno śmigać (testowane na chrome i ff):

http://jsfiddle.net/nd4Jn/


--------------------
http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
Go to the top of the page
+Quote Post
batman
post 3.07.2012, 08:59:26
Post #13





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Teraz działa. Sprawdzę popołudniu to co zrobiłeś na moim przypadku i może uda rozwiązać się ten problem.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
kamil4u
post 3.07.2012, 13:30:31
Post #14





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Cytat
Teraz działa. Sprawdzę popołudniu to co zrobiłeś na moim przypadku i może uda rozwiązać się ten problem.

To jest właśnie owe demo, o które Cię prosiłem, a które zrobił za Ciebie ~d3ut3r . Jak przeanalizujesz jego kod, to będzie się on pokrywał z moim:
Cytat
Demo dla mnie oznacza, że:
- weźmiesz prosty rysunek z dwoma prostokątami
- za pomocą kodu JS wygenerujesz współrzędne - nawet zwykła tablica z danymi - to najmniej ważne
- współrzędne te dodasz do tego obrazka w podobny sposób jak robisz to u siebie( odpowiednią metodą DOM-oską jak się domyślam )
- dodasz skrypt canvas-u ( tu jeszcze mniej roboty )
- wszystko połączysz w podobny sposób jak u Ciebie( tu największy problem, ale oczekuję jak najprostszego kodu na jakimś błahym przykładzie, a nie 200 linijek Twojego kodu )


Możliwe, że sam byś sobie poradził z problemem( albo byśmy Cię odpowiednio nakierowali, gdybyś napisał to sam), ale w moim przekonaniu czekałeś na gotowca. I wcale nie jest to "Odbiegamy od tematu". Poza tym "Zrobienie dema zajmie tyle samo czasu, ile robiłem stronę, więc niestety kodem się nie podzielę wink.gif" jest mijaniem się z prawdą, jak sam doskonale zauważyłeś, bo wątpię, żeby ~d3ut3r pisał to pół dnia.

Pozdrawiam i życzę więcej zaangażowania, bo nie zawsze dostaniesz gotowca wink.gif

--edit--
@down:
Nie chcę już śmiecić Ci w wątku, dlatego wyedytuje posta.

Możliwe, że masz rację, ale ja patrzę tylko przez pryzmat Twoich postów. Poprosiłem Cię, żebyś coś zrobił, a Ty odpisałeś "Odbiegamy od tematu wink.gif". Po czym to samo zrobił ~d3ut3r i Ty mu dziękujesz, bo możliwe, że to jest rozwiązaniem Twojego problemu. No to jak to wgląda w moich oczach? Nie dziw się więc, że tak napisałem. Fakt, że znam Cię nijako na tym forum i że jesteś moderatorem trochę Cię usprawiedliwia, bo ponad 2500 postów nie wzięło się znikąd, ale jeśli chodzi o ten temat to trochę dałeś ciała wink.gif

Cytat
Bardzo możliwe, że problemem stanowi jakiś inny skrypt lub css. Z drugiej strony mogłem coś przegapić podczas podpinania biblioteki i to właśnie sprawdzę za kilka godzin.
No i jakbyś zrobił to demo to byś to wiedział, że nie możemy Ci pomóc, bo błąd jest gdzieś po Twojej stronie, a kodu nie pokażesz. A sama idea jest w porządku.

No i mam nadzieje, że ten cały problem jest warty tego zachodu i Ci się powiedzie nad tajemniczym skryptem. Powodzenia!

Ten post edytował kamil4u 3.07.2012, 14:06:02


--------------------
Go to the top of the page
+Quote Post
batman
post 3.07.2012, 13:55:56
Post #15





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat(kamil4u @ 3.07.2012, 14:30:31 ) *
To jest właśnie owe demo, o które Cię prosiłem, a które zrobił za Ciebie ~d3ut3r . Jak przeanalizujesz jego kod, to będzie się on pokrywał z moim:


Możliwe, że sam byś sobie poradził z problemem( albo byśmy Cię odpowiednio nakierowali, gdybyś napisał to sam), ale w moim przekonaniu czekałeś na gotowca. I wcale nie jest to "Odbiegamy od tematu". Poza tym "Zrobienie dema zajmie tyle samo czasu, ile robiłem stronę, więc niestety kodem się nie podzielę wink.gif" jest mijaniem się z prawdą, jak sam doskonale zauważyłeś, bo wątpię, żeby ~d3ut3r pisał to pół dnia.

Pozdrawiam i życzę więcej zaangażowania, bo nie zawsze dostaniesz gotowca wink.gif

Źle mnie oceniasz smile.gif Jestem ostatnia osobą, która czeka na gotowca. Nie mogę przygotować demo, ponieważ musiałbym wykonać dokładną kopię strony, nad która właśnie pracuję. Bardzo możliwe, że problemem stanowi jakiś inny skrypt lub css. Z drugiej strony mogłem coś przegapić podczas podpinania biblioteki i to właśnie sprawdzę za kilka godzin.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
d3ut3r
post 3.07.2012, 16:11:51
Post #16





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

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


Nie ma co się sprzeczać, temat był ciekawy, więc chciało mi się zrobić coś biggrin.gif jeżeli byłoby to kolejne pytanie o temat przerabiany x razy na forum nie odpuściłbym i też prosiłbym o zamieszczenie kodu. Ja przy tej okazji wzbogaciłem się o nową bibliotekę (o której wcześniej nie słyszałem) a jeżeli przy okazji to komuś pomoże to tym lepiej.


--------------------
http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
Go to the top of the page
+Quote Post
batman
post 4.07.2012, 07:52:15
Post #17





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Problem rozwiązany. Okazało się, że nie dodałem do taga area atrybutu href. Bez niego nie wyświetla się zaznaczenie obszaru. W życiu bym na to nie wpadł. Dzięki za pomoc.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 20:22