Autor | Zpráva | ||
---|---|---|---|
jogurt Profil |
#1 · Zasláno: 29. 8. 2008, 00:37:06
Chtěl bych pro fotogalerii možnost přecházet na další fotku (další stránku) šipkami na klávesnici. Jak na to?
Na iDnesu to funguje, bohužel jsem to v kódu nenašel. Galerie iDnesu třeba: http://mobil.idnes.cz/foto.asp?r=mob_sonyericsson&c=A071023_000352_mob _sonyericsson_vok. |
||
Chamurappi Profil |
#2 · Zasláno: 29. 8. 2008, 00:58:47
Reaguji na jogurta:
Něco dost podobného jsem zrovna nedávno programoval. Když to trochu zjednoduším: document.documentElement.onkeydown = function(e) { var event = e || window.event; var target = event.target || event.srcElement; if(target.tagName == "INPUT" || target.tagName == "TEXTAREA") return true; var akce = { 37: function() { … akce při šipce doleva … }, 38: function() { … akce při šipce nahoru … }, 39: function() { … akce při šipce doprava … }, 40: function() { … akce při šipce dolu … } }; var a = akce[event.keyCode]; return a ? a() : true; }; Není divu, mají ho zapakovaný. Můžeš se také podívat na losův skript na ovládání víceúrovňového menu klávesnicí. |
||
jogurt Profil |
#3 · Zasláno: 29. 8. 2008, 02:00:17
Diky, Chamurappi,
rozumim tomu, az na tu definici event a target - prvni dva radky funkce. Proc je moznost ziskat udalost z parametru nebo z window.event? |
||
Chamurappi Profil |
#4 · Zasláno: 29. 8. 2008, 13:28:39
Reaguji na jogurta:
Explorer a Mozilla používají jiný postup předávání informací o události. V Exploreru vzniká globální objekt window.event, v Mozille se předává obdobný objekt jako argument funkci zpracovávající událost. V prvním řádku si tedy sjednocuji tuto nekompatibilitu — vezmu si do vlastní proměnné buď argument, nebo window.event, podle toho, co existuje. Ve druhém řádku se snažím zjistit element, na kterém elementu ke vzniku události došlo. U Mozilly je ve vlastnosti target, u Exploreru v srcElement. Takže si opět vezmu to, co existuje. V Opeře mimochodem funguje window.event i argument a srcElement i target, takže kdyby byla ta funkce psaná jen pro Explorer, nebo jen pro Mozillu, fungovala by i v Opeře. |
||
jogurt Profil |
#5 · Zasláno: 29. 8. 2008, 13:50:18
Aha, myslel jsem si to. Dik za kod a vysvetleni, funguje mi to.
J |
||
Časová prodleva: 4 roky
|
|||
Fisir Profil |
Používám tentýž skript, jako zde publikoval Chamurappi. Problém je v tom, že když se zmáčkne Ctrl (já totiž mám akce vázané na písmena) provede se i ona akce. A to já nechci. Zkoušel jsem řádek 13 v [#2] nahradit tímto:
if(event.keyCode != 17){ return a ? a() : true; }; |
||
_es Profil |
#7 · Zasláno: 1. 5. 2012, 07:22:42
Fisir:
„aby se akce vykonala jen tehdy, když nebude stisknuto Ctrl“ Vyhľadávače nepoznáš? |
||
Fisir Profil |
Reaguji na _es [#7]:
„Vyhľadávače nepoznáš?“ Ano. Sestavil jsem skript, který mi vypsal, že Ctrl má ASCII kód 17. A ve vyhledávání není to, co já potřebuji. Výsledky hledání „detekce stisknutého ctrl javascript“ v Googlu: 1 • JavaScript - Události 2 • Diskuse: Navigace šipkami na klávesnici 3 • Slabikář JavaScriptu - ostatní události | Interval.cz 4 • Výuka JavaScriptu – 13. - Živě.cz 5 • PSPad - free unicode vývojářský editor určený pro HTML, PHP ... 6 • Download - Microsoft 7 • popis programu - Javascript games 8 • Události, vlastní procedury a typy, převody textu a čísel Moderátor Chamurappi: Nepoužívej nesmyslně nadpisy.
|
||
Marek88 Profil |
Fisir:
Já jsem něco našel: http://stackoverflow.com/questions/1652210/can-i-intercept-control-a-keypresses-on-ie Snad ti to pomůže. ↓ EDIT: V odkázaném tématu se tazatel ptá, proč mu v IE nefunguje řešení s event.ctrlKey . Myslel jsem si, že je chyba v tom event.ctrlKey a že to starší IE třeba neumí. Chyba je ale zřejmě v jeho práci s event ...
Omlouvám se za nedorozumění. |
||
Chamurappi Profil |
#10 · Zasláno: 1. 5. 2012, 12:27:25
Na toto pěkné vlákno docela často odkazujeme. Pokud sem napíšete příliš mnoho blbostí, tak vás smažu.
Reaguji na _es: Nekonstruktivní. Reaguji na Fisira: Hm, svkěle, ještě sem narvi nadpis s kotvou #hledani, na to určitě budou chtít všichni odkazovat… Reaguji na Marka88: Fuj, to je krkolomné. Vždyť stačí prostá podmínka s event.ctrlKey …
|
||
Fisir Profil |
#11 · Zasláno: 1. 5. 2012, 13:24:23
|
||
_es Profil |
Chamurappi:
> Reaguji na _es: > Nekonstruktivní. Vzhľadom na uvedený údaj „Časová prodleva: 4 roky“ a na to, že Fisir:> „event.ctrlKey“> Děkuji! Funguje! sa dalo nájsť za pár sekúnd aj vyhľadávačom, aj na tomto fóre, sa mi to nezdá ako nekonštruktívne. Fisir: „Výsledky hledání ‚detekce stisknutého ctrl javascript‘ v Googlu:“ Stačí len vhodne formulovať dotaz, napríklad na primitívne ctrl javascript. |
||
Časová prodleva: 11 let
|
0