Autor | Zpráva | ||
---|---|---|---|
kuba123 Profil * |
#1 · Zasláno: 22. 6. 2013, 10:07:09
Dala by se udělat funkce, která určí polohu myši nad obrázkem? Tato funkce by měla vracet true, pokud se kurzor myši objeví uvnitř obrázku ve vzdálenosti 40px od okraje. Používám JQuery.
|
||
kuba123 Profil * |
#2 · Zasláno: 23. 6. 2013, 09:41:09 · Upravil/a: kuba123
Pomocí <img src=... onMouseOver='getMousePos(this, myFunction)'> chci spustit tuto funkci, ale hlásí mi to chybu
var getMousePos = function (that, myFunction = Null){ var imgWidth = $(that).width(); var imgHeight = $(that).height(); var imgPosition = $(that).position(); imgPosition.left = Math.round(imgPosition.left); imgPosition.right = imgPosition.left + imgWidth; imgPosition.top = Math.round(imgPosition.top); imgPosition.bottom = imgPosition.top + imgHeight; console.log(imgPosition); if ( mousePos.x > imgPosition.left && mousePos.x < imgPosition.right && mousePos.y > imgPosition.top && mousePos.y < imgPosition.bottom ) { console.log("You clicked in the image"); if ( myFunction ) { return myFunction(); } } } Nevíte co je špatně? Ještě jsem to ani nespustil (jen jsem načetl zbývající script, který ale bez této funkce funguje správně a bez chyb) a už mi to hlásí chybu. Highlighted syntax http://pastebin.com/cn0zkFvY Respektive bych potřeboval poradit jak nahradit tuto funkci tímto: $(function() { $("span img").mouseover( getMousePos(this, zoom); ); } Dostávám chybu setImage is not defined... Protože $("span img") vrací objekt s obrázkem, ale jak tento obrázek dostat do this? A když getMousePos( .. ) nahradím za console.log(11111) tak taky dostávám chybu setImage is not defined |
||
kuba123 Profil * |
#3 · Zasláno: 23. 6. 2013, 11:12:51
Mám to praveno, ale nefunguje to tak jak bych chtěl. Pomůže někdo?
$("span img").mouseover( function() { getMousePos( $(this), zoom); } ); |
||
Str4wberry Profil |
#4 · Zasláno: 23. 6. 2013, 11:23:53
Aby ne, když se používá
onmouseover , pokud to má reagovat na přejíždění po elementu, je k tomu onmousemove .
(Bez jQuery se dá pracovat s posicí myši takto.) |
||
kuba123 Profil * |
#5 · Zasláno: 23. 6. 2013, 11:29:23
Díky, už to jede mnohem lépe. Ještě dotaz jak v JS přednastavit argument? Chybu jsem měl předtím zde:
var getMousePos = function (that, myFunction = Null){ } tak jsem = Null odstranil |
||
Chamurappi Profil |
#6 · Zasláno: 23. 6. 2013, 14:34:06
Reaguji na kubu123:
„Ještě dotaz jak v JS přednastavit argument?“ Nijak. Nenastavené argumenty mají hodnotu undefined .
I kdyby popisovaná konstrukce byla v pořádku, tak by nefungovala, pokud bys neměl vyrobenou proměnnou jménem Null . Možná jsi měl na mysli spíš null .
|
||
kuba123 Profil * |
#7 · Zasláno: 23. 6. 2013, 15:05:58
jj nevím jestli JS rozlišuje velikost písmen. Chtěl jsem udělat nepovinný argument tak jak v php
|
||
pako Profil * |
#8 · Zasláno: 23. 6. 2013, 21:32:04
navrh js6 s tym uz myslim pocita, ale to je hudba buducnosti
toto sa obchadza takto (ak nepotrebujes predavat 'false' hodnoty) function func(a) { var a = a || 100; } |
||
Petr ZZZ Profil |
#9 · Zasláno: 24. 6. 2013, 12:46:31
kuba123:
„nevím jestli JS rozlišuje velikost písmen“ Rozlišuje (na rozdíl např. od HTML a CSS, kde je to fuk). |
||
Chamurappi Profil |
#10 · Zasláno: 24. 6. 2013, 18:16:11
Reaguji na Petra ZZZ:
I v HTML a CSS jsou místa, kde na velikosti písmen záleží, třeba u názvů tříd. Nebo třeba v HTML u názvů entit: Š je velké Š , š je malé š .
V JavaScriptu záleží na velikosti písmen téměř všude, snad jedinou výjimkou je zápis čísel. |
||
Petr ZZZ Profil |
#11 · Zasláno: 24. 6. 2013, 19:52:53
Reaguji na Chamurappiho:
„I v HTML a CSS jsou místa, kde na velikosti písmen záleží, třeba u názvů tříd.“ Díky za rozšíření obzorů, přesto se zeptám: U názvů tříd záleží na velikosti písmen vždy, nebo jen když s nimi pracuje JavaScript (např. getElementsByClassName )?
(Zkusil jsem tento kód... <style type="text/css"> .rR {color:blue} </style> <p class="rr">text</p> ...a funguje, text je modrý.) (Zkoušel jsem to ale jen v IE.) |
||
Str4wberry Profil |
#12 · Zasláno: 24. 6. 2013, 20:24:06
Zkus to ve standardním režimu. :–)
|
||
_es Profil |
Str4wberry:
V quirk režime v rôznych prehliadačoch (hlavne IE a iné prehliadače) rôzne správanie a v štandardnom režime jednotné, či nie? |
||
Str4wberry Profil |
#14 · Zasláno: 24. 6. 2013, 20:36:45
Pokud si dobře pamatuji, tak citlivost na velikost je jen ve standardním režimu. V quirku by ten text měl být modrý ve všech běžných prohlížečích.
|
||
Petr ZZZ Profil |
#15 · Zasláno: 24. 6. 2013, 20:50:00
Reaguji na Str4wberryho:
No jo, režim, ten já neřešil, uložil jsem celý ten kód jako html, podle hesla "jak funguje HTML – polovina tagů nepovinných" a šmitec. :-) Ale máš pravdu, po přidání <!DOCTYPE html> na začátek souboru už je text černý! (A tak nějak „standardně“ odsazený od horního okraje. :-)
|
||
_es Profil |
#16 · Zasláno: 24. 6. 2013, 20:51:34
Str4wberry:
„V quirku by ten text měl být modrý ve všech běžných prohlížečích.“ Je to tak, pomýlilo ma, že v IE je štandardný režim vyvolaný aj značkou <!doctype> , ktorá v iných prehliadačoch vyvolá quirk režim.
|
||
Str4wberry Profil |
#17 · Zasláno: 24. 6. 2013, 21:31:23
„značkou
<!doctype> , ktorá v iných prehliadačoch“
Můžeš, prosím, uvést příklad takového <!docytpe> ?
|
||
_es Profil |
Str4wberry:
„příklad takového <!docytpe> ?“
Konkrétne, trebárs, presne: <!doctype> |
||
Str4wberry Profil |
#19 · Zasláno: 24. 6. 2013, 22:01:09
Díky, nevěděl jsem, že něco takového jde. V Exploreru 10 už je to ale i tak modré.
|
||
Časová prodleva: 11 let
|
0