• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Podświetlanie "Kordów" po najechaniu myszką

Object Storage Arubacloud
+1 głos
738 wizyt
pytanie zadane 16 października 2018 w HTML i CSS przez Hardwell Dyskutant (8,980 p.)
edycja 16 października 2018 przez Hardwell

Witam, pisałem już posty na podobny temat ale niestety nie znalazłem odpowiedzi, dlatego też piszę go jeszcze raz lecz myślę że w sposób lepszy dla osoby pomagającej ponieważ wklejam kod z podglądem na Tryit Editor (Po wejściu nacisnąć zielony przycisk RUN żeby wczytało kod), a więc do rzeczy.

LINK

A więc tak jak widzicie, w Tryit Editor (link powyżej) mam kratki, jak możecie zauważyć po najechaniu myszką na kratkę pokazuje się dymek (title) z numeracją kratek (1,1 1,2 1,3 itd)

Pytanie moje brzmi:

W jaki sposób zrobić tak aby po najechaniu myszką na kratkę, oprócz numeracji (1,1 1,2 1,3 itd) kratka się podświetlała? mam nadzieję że wiecie o co mi chodzi.

 

komentarz 16 października 2018 przez jaca121212 Nałogowiec (40,760 p.)
Link nie działa wklej kod na codepen

Hover backgroud-color
komentarz 16 października 2018 przez Hardwell Dyskutant (8,980 p.)
Próbowałem z hover, ale nie wychodziło, a link już podmieniłem na działający
komentarz 16 października 2018 przez manjaro Nałogowiec (37,390 p.)
Co to są  kordy?
komentarz 16 października 2018 przez Chess Szeryf (76,710 p.)
Najprawdopodobniej chodziło mu o słowo angielskie coordinates (współrzędne), więc nazwał to "kordami". Tak się w grach chyba mówi na to, gdzie kto jest, np. na polu o x=0, y=0.
komentarz 16 października 2018 przez manjaro Nałogowiec (37,390 p.)
A dlaczego po prostu nie napisał w takim razie "współrzędne" tyko użył jakiegoś niezrozumiałego dla wszystkich szyfru?

3 odpowiedzi

+1 głos
odpowiedź 16 października 2018 przez Chess Szeryf (76,710 p.)
edycja 16 października 2018 przez Chess
 
Najlepsza
#pos1, #pos2 {
    position:absolute;
}
#positional {
    width:300px;
    height:100px;
    position:relative;
    margin-left:auto;
    margin-right:auto;
}

img { 
	width:272px;
	height:92px;
}
<map name="Map" id="Map">

   <area shape="rect" coords="0,0,68,46" title="0,0"/>
   <area shape="rect" coords="68,0,136,46" title="1,0"/>
   <area shape="rect" coords="136,0,204,46" title="2,0"/>
   <area shape="rect" coords="204,0,272,46" title="3,0"/>
 
   <area shape="rect" coords="0,46,68,92" title="0,1">
   <area shape="rect" coords="68,46,136,92" title="1,1">
   <area shape="rect" coords="136,46,204,92" title="2,1">
   <area shape="rect" coords="204,46,272,92" title="3,1">

</map>

<div id="positional">

   <img id="pos1" src="https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" usemap="#Map" />
   <img id="pos2" src="https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" usemap="#Map" />

</div>
var width_img = document.getElementById('pos1').width;
var height_img = document.getElementById('pos1').height;

document.addEventListener('mouseover', function(e) {
 
    if(e.target.tagName === 'AREA') {
         
        var coord = (e.target.coords).split(',');
         
        document.getElementById('pos1').style.clipPath = "inset("+coord[1]+'px '+(width_img-coord[2])+'px '+(height_img-coord[3])+'px '+coord[0]+'px'+")";
        document.getElementById('pos1').style.zIndex = 100;
        document.getElementById('pos1').style.background = 'orange';
         
    } else {
        document.getElementById('pos1').style.background = '';
    }
 
}, false);

Inna wersja:

#pos1, #pos2 {
	position:absolute;
}
#positional {
	width:274px;
	height:94px;
	position:relative;
	margin-left:auto;
	margin-right:auto;
	border:1px solid black;
	padding:10px 10px 10px 10px;
	background:tomato;
}
img {
	width:272px;
	height:92px;
	background:darkolivegreen;
}

<map name="Map" id="Map">

</map>

<div id="positional">

   <img id="pos1" src="https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" usemap="#Map" />
   <img id="pos2" src="https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" usemap="#Map" />

</div>

var height_img = (document.getElementById('pos1').height);
var width_img = (document.getElementById('pos1').width);

var large_grid_width = 136; 
var large_grid_height = 46;

var height_grid = 0;
var width_grid = 0;

var iterator1 = 0;
var iterator2 = 0;

for(var i=0;i<height_img;i+=large_grid_height) {
	width_grid = 0;
	iterator2 = 0;
	height_grid += large_grid_height;
	
	for(var j=0;j<width_img;j+=large_grid_width) {
		
		width_grid += large_grid_width;
		var area = document.createElement('area');
		area.coords = (j)+','+(i)+','+width_grid+','+height_grid;
		
		area.title = j+' '+i+' | '+iterator2+' '+iterator1;
		document.getElementById('Map').appendChild(area);
		
		iterator2++;
	}
	iterator1++;
}

document.addEventListener('mouseover', function(e) {

    if(e.target.tagName === 'AREA') {
         
        var coord = ((e.target.coords)).split(',');
		
        document.getElementById('pos1').style.clipPath = "inset("+coord[1]+'px '+(width_img-parseInt(coord[2]))+'px '+(height_img-parseInt(coord[3]))+'px '+coord[0]+'px'+")";
		document.getElementById('pos1').style.zIndex = 100;
	    document.getElementById('pos1').style.background = 'orange';
         
    } else {
        document.getElementById('pos1').style.background = '';
    }
 
}, false);

Za pomocą zmiennych large_grid_width i large_grid_height możesz zmienić sobie szerokość i wysokość kratki. Jeśli masz w CSS dla image (img) ustawione np. takie wymiary: width:100px;height:100px;, to możesz dać tym zmiennym po 10px szerokości i wysokości, ponieważ 100/10=10, więc wychodzi liczba całkowita. Jeśli nie wyjdzie całkowita, to wtedy ostatnie kratki będą tak jakby przycięte.

Zmienne globalne na lokalne i tego typu elementy możesz sobie pozamieniać sam, jeśli widzisz gdzieś, że lepiej byłoby użyć let zamiast var i odwrotnie, a może nawet const, to jak najbardziej dokonaj takiej edycji.

komentarz 16 października 2018 przez Hardwell Dyskutant (8,980 p.)
Dokładnie o to mi chodziło! Jesteś wielki! :) Dzięki i pozdrawiam :D
0 głosów
odpowiedź 16 października 2018 przez Kamil Batorski Obywatel (1,870 p.)
Nadaj klasy do elementów i dopisz w CSS element:hover {color: kolor} sprawdź i napisz  czy działa i wyślij kod
komentarz 16 października 2018 przez Hardwell Dyskutant (8,980 p.)
właśnie nie działa z hover, dla tego też zgłosiłem sie tutaj po pomoc
komentarz 16 października 2018 przez Kamil Batorski Obywatel (1,870 p.)
nie wiem co to ma robic opisz to jeszcze raz bo w kodzie jest jakaś mapa jakieś zdjęcie i td nie wiem co chcesz z tego zrobić...
komentarz 16 października 2018 przez Hardwell Dyskutant (8,980 p.)
najprościej mówiąc, najeżdżasz myszką na kratkę 1 i pokazuje się numerek kratki (czyli 1,1) chcę żeby jeszcze ta kratka się podświetlała albo zmieniała kolor
komentarz 16 października 2018 przez Kamil Batorski Obywatel (1,870 p.)
ale ty jesteś świadomy że nie ma w kodzie kratek? :D
komentarz 16 października 2018 przez Hardwell Dyskutant (8,980 p.)
chyba że znasz inny pomysł żeby zrobić takie kordy i podświetlanie na zdjęciu to chętnie wysłucham
komentarz 16 października 2018 przez Hardwell Dyskutant (8,980 p.)
jestem świadomy, kratki są na zdjęciu
komentarz 16 października 2018 przez Kamil Batorski Obywatel (1,870 p.)
dobra ja tam nic nie widze, a wiec jesli to musi byc zdj to robisz obliczenie np. 3x3 kratki to w ten czas, zdj 900x900 np. dzielisz czyli 300x300 = 1 kratka robisz przezroczyste bloki obok siebie 3x3 po 300x300px i przedzielasz im id.
0 głosów
odpowiedź 17 października 2018 przez niezalogowany

Może to: szachownica

Podobne pytania

0 głosów
0 odpowiedzi 345 wizyt
0 głosów
1 odpowiedź 435 wizyt
pytanie zadane 14 maja 2018 w HTML i CSS przez maciekwisnia Nowicjusz (210 p.)
0 głosów
1 odpowiedź 1,203 wizyt
pytanie zadane 19 czerwca 2017 w HTML i CSS przez Krzysiek_34 Mądrala (6,050 p.)

92,573 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...