Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][HTML][CSS] Podświetlane elementy mapy
Forum PHP.pl > Forum > Przedszkole
STR13
Witam, mam mapę województwa podzielonego na powiaty. Kod ma za zadanie podświetlić wybrany powiat, kiedy najedziemy na niego kursorem myszy. W moim kodzie jest błąd, którego nie wiem jak rozwiązać, aby powiat się podświetlał. Aktualnie skonfigurowane są 2 powiaty, bo chciałem sprawdzić czy kod zadziała... nie działa. Co mam poprawić aby dany powiat podświetlał się gdy na niego najadę kursorem?

HTML + JS
Kod
<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body onload="">
            <div class="mapka">
            <script  type='text/javascript'>
                            
                if(document.images) {

   imagemap_default = new Image();
   imagemap_default.src = 'malopolska_mapa.png';

   imagemap_1 = new Image();
   imagemap_1.src = 'bochenski.png';

   imagemap_2 = new Image();
   imagemap_2.src = 'olkuski.png';

   imagemap_3 = new Image();
   imagemap_3.src = 'dabrowski.png';

   imagemap_4 = new Image();
   imagemap_4.src = 'proszowicki.png';

   imagemap_5 = new Image();
   imagemap_5.src = 'krakowski.png';

   imagemap_6 = new Image();
   imagemap_6.src = 'chrzanowski.png';

   imagemap_7 = new Image();
   imagemap_7.src = 'oswiecimski.png';

   imagemap_8 = new Image();
   imagemap_8.src = 'wadowicki.png';
  
   imagemap_9 = new Image();
   imagemap_9.src = 'suski.png';
  
   imagemap_10 = new Image();
   imagemap_10.src = 'nowatorski.png';
  
   imagemap_11 = new Image();
   imagemap_11.src = 'tarzanski.png';
  
   imagemap_12 = new Image();
   imagemap_12.src = 'nowosadecki.png';
  
   imagemap_13 = new Image();
   imagemap_13.src = 'gorlicki.png';
  
   imagemap_14 = new Image();
   imagemap_14.src = 'tarnowski.png';
  
   imagemap_15 = new Image();
   imagemap_15.src = 'brzeski.png';
  
   imagemap_16 = new Image();
   imagemap_16.src = 'bochenski.png';
  
   imagemap_17 = new Image();
   imagemap_17.src = 'wielicki.png';
  
   imagemap_18 = new Image();
   imagemap_18.src = 'myslenicki.png';
  
   imagemap_19 = new Image();
   imagemap_19.src = 'limanowski.png';

}

function rollOver(iName,iState) {
   if(document.images) {
      document.images[iName].src = eval(iName + '_' + iState + '.src');
   }
}            
            </script>            
            <div><img src="malopolska_mapa.png" alt="" /><img src="malopolska_mapa.png" style=" z-index: 2; position: relative; left:-220px; " usemap="#map" name="imagemap" alt="" /></div>    
            <map name="map">

                                    <area shape="poly" coords="134,67,133,63,132,63,131,59,130,59,129,60,126,59,125,59,123,59,123,61,118,62
,118,68,121,71,122,78,120,80,120,82,115,82,115,90,110,95,110,98,109,98,109,100,10
9,103,111,103,112,104,113,106,115,104,118,104,120,107,121,109,131,108,131,106,134
,105,134,101,139,100,137,96,138,90,136,89,134,85,136,84,136,78,138,78,140,71,142,
71,142,69,139,68,138,67,134,67" href="#" onmouseover="rollOver('imagemap','bochenski')" onmouseout="rollOver('imagemap','default')" alt="" />
                                    
                                    <area shape="poly" coords="149,55,149,51,148,50,142,57,140,57,139,58,134,58,132,59,133,62,133,63,134,64
,134,66,139,66,144,68,143,71,141,72,139,79,137,79,137,83,137,84,136,85,134,86,137
,89,138,89,138,93,137,95,138,96,138,97,139,99,139,101,134,101,135,104,135,104,135
,106,135,107,141,110,143,109,143,107,144,107,144,106,146,106,146,105,152,105,151,
101,152,97,152,91,155,91,156,91,156,90,155,90,155,85,157,84,155,83,156,79,154,77,
154,75,156,74,157,76,158,74,158,74,154,73,154,70,156,69,156,67,156,64,154,62,152,
62,152,61,154,61,154,58,153,56,150,56,149,55" href="#" onmouseover="rollOver('imagemap','brzeski')" onmouseout="rollOver('imagemap','default')" alt="" />                                    
                            </map>
</div>
</body>
</html>



CSS
Kod
.mapka {
    width:220px;
    overflow: hidden;
}

.mapka > div{
    width:440px;
    margin-top:5px;
}

.mapka > div > img {
    width: 220px;
}

nospor
eval(iName + '_' + iState + '.src');
co wg ciebie robi ten kod?
STR13
Cytat(nospor @ 16.10.2017, 11:17:24 ) *
eval(iName + '_' + iState + '.src');
co wg ciebie robi ten kod?


Powinien podświetlić dany element? Jeszcze jestem w tym trochę zielony także mogę się mylić
nospor
eee? A niby jakim cudem?
Pytam dokladnie o ten kawalek kodu:
eval(iName + '_' + iState + '.src');
Jakim cudem to ma cos podswietlic? Z twojego pierwszego posta odnioslem wrazenie ze ty to napisales wiec wyjasnij mi prosze co wg ciebie robi ten kod
eval(iName + '_' + iState + '.src');
i dokladnie ten kod.
STR13
Cytat(nospor @ 16.10.2017, 11:34:00 ) *
eee? A niby jakim cudem?
Pytam dokladnie o ten kawalek kodu:
eval(iName + '_' + iState + '.src');
Jakim cudem to ma cos podswietlic? Z twojego pierwszego posta odnioslem wrazenie ze ty to napisales wiec wyjasnij mi prosze co wg ciebie robi ten kod
eval(iName + '_' + iState + '.src');
i dokladnie ten kod.


Temat: HTMLJavaScriptCSS Podswietlenie menu na mapie Wzorowałem się kodem @Kostek.88
nospor
czyli nie wiesz co robi ten kawalek kodu...
No dobrze, to moze inaczej. Skoro sie wzorowales na cudzym kodzie, to mozesz mi wyjasnic czemu w pewnym momencie zmieniles oryginalny kod na swoj zly? Zeby podpowiedziec, gdzie masz blad, wprowadzmy przykladowe wartosci, z ktorymi odpalasz ten kod:

eval("imagemap_brzeski.src ")
Nadal nie widzisz bledu? Jesli nie, to przejrzyj jeszcze raz kod na ktorym sie wzorowales i porownaj z tym co sam napisales. Blad jest naprawde banalny.
STR13
Cytat(nospor @ 16.10.2017, 11:51:14 ) *
czyli nie wiesz co robi ten kawalek kodu...
No dobrze, to moze inaczej. Skoro sie wzorowales na cudzym kodzie, to mozesz mi wyjasnic czemu w pewnym momencie zmieniles oryginalny kod na swoj zly? Zeby podpowiedziec, gdzie masz blad, wprowadzmy przykladowe wartosci, z ktorymi odpalasz ten kod:

eval("imagemap_brzeski.src ")
Nadal nie widzisz bledu? Jesli nie, to przejrzyj jeszcze raz kod na ktorym sie wzorowales i porownaj z tym co sam napisales. Blad jest naprawde banalny.


Czytam i czytam i nie wiem gdzie go popełniłem sadsmiley02.gif
nospor
evaluujesz
eval("imagemap_brzeski.src ")

podczas gdy twoje obiekty nazywaja sie tak

imagemap_17 = new Image();
imagemap_17.src = 'wielicki.png';

imagemap_18 = new Image();
imagemap_18.src = 'myslenicki.png';

Widzisz gdzies tam obiekt o nazwie imagemap_brzeski?!
STR13
Cytat(nospor @ 16.10.2017, 12:16:24 ) *
evaluujesz
eval("imagemap_brzeski.src ")

podczas gdy twoje obiekty nazywaja sie tak

imagemap_17 = new Image();
imagemap_17.src = 'wielicki.png';

imagemap_18 = new Image();
imagemap_18.src = 'myslenicki.png';

Widzisz gdzies tam obiekt o nazwie imagemap_brzeski?!


Powinno wyglądać tak?
onMouseOut="rollOver('imagemap','prev')" onMouseOver="rollOver('imagemap','1')
trueblue
W temacie, który cytujesz jest wyjaśnienie. Gdybyś przeczytał cały, to byś wiedział.
http://forum.php.pl/index.php?s=&showt...st&p=921641
viking
Użyj to co podałem a nie jakieś rozwiązania starożytne.
STR13
Okej podświetlać się podświetla, ale gdy najeżdżam na powiat podświetlony pojawia mi się na środku mapy
https://zapodaj.net/6c502d4c8181d.png.html
nospor
Bo podmieniasz caly zrodlowy plik z wieksza mapa na obrazek malego obszaru, to logicznie ze sie nadpisuje. Dodatkowo nie okraslasz wspolrzednych poszczegolnych obszarow wiec lezy na srodku a nie tam gdzie powinien... Moze faktycznie uzyj tego co napisal viking, bo tego sam nie zrobisz.
viking
Kilka miesięcy temu o to pytałem w kontekście mapy kraju - głównie nie byłem pewien jak ze wsparciem svg obecnie (+ na komórkach). Ale jest naprawdę dobrze i nie widzę obecnie żadnych przeszkód w stosowaniu. Ten potworek wyżej to jest jakiś żart, nawet jak na 2011.
STR13
Cytat(viking @ 16.10.2017, 12:52:48 ) *
Kilka miesięcy temu o to pytałem w kontekście mapy kraju - głównie nie byłem pewien jak ze wsparciem svg obecnie (+ na komórkach). Ale jest naprawdę dobrze i nie widzę obecnie żadnych przeszkód w stosowaniu. Ten potworek wyżej to jest jakiś żart, nawet jak na 2011.


Czyli ściągam tego svg, dodaję css'a a w nim hover i po robocie?
viking
Tak.
STR13
Pobrałem svg mapy, wrzuciłem go do html, dodałem plik css, ale nie działa

HTML
Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div id="mapedits">
<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://web.resource.org/cc/"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   width="3555.9063"
   height="3188.2813">
  
  <path
    style="fill:#91add1"
     d="M 1279.8695,47.012001 C 1284.2227,63.223154 1268.6789,58.191667 1276.4926,69.360428 C 1279.5246,76.890903 1290.0503,76.927685 1300.1305,77.410004 C 1298.7112,89.742328 1313.271,86.095563 1310.2605,100.01904 C 1310.2605,112.74669 1310.2605,125.47435 1310.2605,138.202 C 1301.0969,136.10995 1283.4569,142.49427 1279.8695,134.826 C 1273.9161,129.95332 1266.2692,126.77399 1257.5241,124.693 C 1255.5495,116.01851 1241.2634,119.65555 1235.7069,114.563 C 1226.6991,116.81223 1208.5705,109.94066 1205.5754,118.20262 C 1196.7842,120.58568 1198.6587,133.63448 1198.8235,144.97352 C 1196.6141,154.10419 1203.3874,172.21752 1195.1839,175.354 C 1182.1896,173.36058 1179.1898,181.3617 1165.5602,178.733 C 1156.1511,180.74883 1138.5301,174.55265 1134.6615,182.10899 C 1119.4522,178.15771 1134.7785,204.74196 1124.5305,205.752 C 1124.5305,219.26133 1124.5305,232.77067 1124.5305,246.28 C 1116.9447,250.13172 1123.1917,267.81638 1121.1545,277.21675 C 1120.887,288.56137 1120.2456,300.27982 1127.9065,303.69601 C 1127.9065,332.96735 1127.9065,362.23868 1127.9065,391.51001 C 1120.5575,394.89822 1116.8307,401.90873 1111.0236,406.83882 C 1103.4648,409.93008 1107.4787,424.59405 1100.8936,428.659 C 1096.4724,433.03018 1094.1414,451.18964 1104.2686,450.74281 C 1117.7431,448.00686 1116.3185,460.17006 1121.4161,465.811 C 1135.6328,462.24573 1132.7584,475.77153 1139.8603,479.32101 C 1151.5546,478.36407 1154.1585,486.49743 1161.9402,489.453 C 1176.9142,485.30378 1169.0476,503.99511 1184.2825,499.58499 C 1190.7448,503.59868 1190.9204,513.89913 1198.8235,516.47198 C 1198.6799,527.44073 1211.3795,525.56624 1212.3304,535.44045 C 1212.3304,550.50797 1212.3304,565.57549 1212.3304,580.64301 C 1230.7857,573.01293 1220.6663,593.95753 1231.296,594.15302 C 1240.1047,592.39789 1241.9116,583.64091 1252.8535,584.01898 C 1258.1371,578.30233 1258.0677,567.23275 1272.3462,570.51099 C 1284.1889,571.35998 1291.1008,567.27816 1300.1305,565.31416 C 1306.1735,560.70683 1315.555,559.43792 1327.1465,560.37903 C 1329.3472,551.75496 1340.1397,551.72258 1340.6525,541.41057 C 1347.1547,537.26044 1349.9882,529.44157 1357.8021,526.60303 C 1368.9702,526.60303 1380.1384,526.60303 1391.3065,526.60303 C 1399.482,523.77827 1400.9676,514.2637 1414.1762,516.47198 C 1418.0185,509.22589 1434.7663,514.88528 1444.0635,513.09399 C 1453.5361,512.01023 1462.2445,510.16232 1462.2235,499.58499 C 1475.9389,502.30117 1479.4051,494.7682 1491.8451,496.20901 C 1507.8609,496.20901 1523.8767,496.20901 1539.8925,496.20901 C 1543.8756,503.04899 1554.8293,502.91842 1562.2319,506.33899 C 1565.8673,513.26815 1575.4853,514.21462 1583.7925,516.47198 C 1585.6503,523.58916 1597.1273,531.98127 1599.1223,519.849 C 1603.6082,512.98689 1619.9627,517.99331 1629.7894,516.47198 C 1641.5556,517.07456 1652.4683,516.82356 1658.0825,511.27419 C 1667.9119,510.18889 1675.6266,506.98891 1685.8914,506.33899 C 1705.8884,506.33899 1725.8854,506.33899 1745.8824,506.33899 C 1747.0381,496.75834 1748.2314,487.2154 1752.6324,480.8802 C 1760.9115,477.9816 1759.6504,465.54287 1759.3925,454.1073 C 1759.3667,443.34641 1779.0524,452.29705 1776.2825,438.79199 C 1785.8675,437.12098 1773.4258,413.42329 1783.0325,411.77399 C 1778.2905,396.03111 1799.8993,406.63907 1793.1625,388.90135 C 1800.5959,385.85944 1812.5731,387.36127 1816.8025,381.11539 C 1817.0441,369.70094 1817.7526,357.81966 1810.0425,354.35699 C 1811.2645,341.70461 1809.1373,332.40131 1806.6725,323.43576 C 1801.3574,318.10044 1798.7559,310.05153 1796.5425,301.61458 C 1783.1886,304.40288 1789.2856,287.74039 1779.6525,286.80801 C 1776.1917,279.53251 1769.9783,275.00962 1762.7725,271.4792 C 1755.3148,268.28543 1754.4197,258.5292 1749.2625,253.035 C 1748.0242,243.53499 1741.7583,239.06264 1737.3126,232.77 C 1728.8261,230.25536 1718.0462,230.03405 1722.2426,214.83653 C 1718.1688,208.52221 1721.1307,195.17214 1715.4926,190.4222 C 1716.4234,180.094 1712.3175,164.72912 1720.6924,161.845 C 1727.0831,157.58473 1730.9276,150.77817 1729.0024,138.202 C 1725.3458,130.51348 1704.6142,139.89985 1701.9825,131.18639 C 1702.0648,120.45306 1692.2309,119.6359 1688.4725,112.74319 C 1684.5487,105.93009 1670.336,109.40581 1667.9529,101.052 C 1659.1303,99.223554 1654.5889,93.113887 1644.5725,92.479195 C 1636.7619,88.85117 1622.2227,91.951829 1611.8159,90.919998 C 1600.732,90.304508 1593.8026,93.843599 1590.5425,101.052 C 1577.4527,99.050615 1574.3465,107.03287 1560.6542,104.429 C 1549.3076,104.07547 1538.0089,103.76985 1531.053,107.807 C 1519.577,106.98007 1518.6582,116.71031 1509.2368,117.938 C 1500.2011,115.80525 1482.5488,122.28908 1479.1064,114.563 C 1473.5385,109.39302 1475.9725,96.221105 1467.1566,94.299004 C 1467.5878,83.041033 1459.8377,79.964305 1458.8445,70.130767 C 1460.6557,57.318981 1445.9781,60.995989 1435.4516,60.521999 C 1417.4891,53.554536 1427.0603,74.120859 1412.6004,70.655998 C 1398.9063,73.180693 1395.4795,65.438017 1385.8471,63.901001 C 1376.133,62.527027 1368.8604,58.71156 1355.9619,60.521999 C 1344.1343,61.53117 1341.4385,53.408639 1333.6378,50.390999 C 1322.3715,50.9191 1321.1905,41.361838 1311.5561,40.257999 C 1300.8895,38.114442 1296.5309,35.766049 1286.6245,40.257999 C 1286.2214,43.88381 1283.3992,46.368547 1279.8695,47.012001 z "
     id="miechowski" />
</svg>
</div>
</body>
</html>


CSS
Kod
.path:hover{
    fill: #a4ced2;
    stroke: #FFF
    stroke-width: 1px;
    transition: fill 0.3s;
}
nospor
Czemu w css nadajesz style dla elementu o klasie PATH, skoro taki element w twoim html nie istnieje ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.