Autor | Zpráva | ||
---|---|---|---|
user243 Profil |
#1 · Zasláno: 23. 6. 2012, 18:47:00
hoj,
mám problém s ovládáním galerie a shadowboxu pomocí šipek klávesnice; původně byl v galerii jen shadowbox a mezi jednotlivými screeny šlo lehce šipkami přepínat šipkami, později mě napadlo přidat přepínání šipkami i mezi jednotlivými stránkami; k tomu jsem použil skript od Chamurappiho, který jsem si pro sebe upravil: /* ovládání galerie */ //function ovladani_galerie() { // jakpsatweb document.documentElement.onkeydown = function(e) { var event = e || window.event; var target = event.target || event.srcElement; if(/*target.tagName == "img" && */document.getElementById("galerie") == null) return true; /* nvm proč, ale funguje to s rovností*/ var akce = { 37: function() {window.location=document.getElementById('zpet').href;}, /* 38: function() { … akce při šipce nahoru … },*/ 39: function() {window.location=document.getElementById('dalsi').href;} /* 40: function() { … akce při šipce dolu … }*/ }; var a = akce[event.keyCode]; return a ? a() : true; } //} předem děkuji za nápady; |
||
Keeehi Profil |
#2 · Zasláno: 23. 6. 2012, 19:03:54
if ( document.getElementById("sb-overlay").style.opacity == 0 || document.getElementById("sb-overlay").style.opacity == "") { // shadowbox je zavřený } else { // shadowbox je otevřený } |
||
user243 Profil |
#3 · Zasláno: 23. 6. 2012, 19:41:36
funguje, děkuji moc;
|
||
Chamurappi Profil |
#4 · Zasláno: 23. 6. 2012, 20:03:59
Reaguji na usera243:
Ve všech prohlížečích? Pochybuji. „if(/*target.tagName == "img" && */document.getElementById("galerie") == null) return true;“ Z jakého důvodu jsi nahradil podmínku, že když je kurzor ve formulářovém prvku, že se nemají chytat šipky, za tuhle podmínku, která říká, že se nemají chytat klávesy, pokud je ve stránce element s id="galerie" ?
|
||
user243 Profil |
#5 · Zasláno: 23. 6. 2012, 21:18:56
drobet jsem přestřelil, nefunguje v ie, ale v chrome, opeře a ff ano; podmínku jsem vyměnil, protože nevyplňuji žádný formulář, ale potřebuji testovat šipky, když jsem na stránce s galerií; původně jsem měl v podmínce nerovnost, ale nefungovalo to, jak mám napsané v poznámce, funguje to s rovností; potom jsem testoval hodnotu pomocí:
<script> test = document.getElementById('galerie'); document.write(test); </script> víte, co mám špatně, aby to fungovalo i v ie? |
||
Keeehi Profil |
#6 · Zasláno: 23. 6. 2012, 22:49:26
user243:
Ne, JS se spouští tam, kde je napsaný. Aby se spustil až po načtení stránky, musel by reagovat třeba na událost onload u body. |
||
user243 Profil |
#7 · Zasláno: 24. 6. 2012, 12:52:17
opacity zná ie jen přes filtr, ale díky za nakopnutí; výsledný funkční kód:
/* ovládání galerie */ // https://gist.github.com/1771618 function getUrlVar(key){ var result = new RegExp(key + "=([^&]*)", "i").exec(window.location.search); return result && unescape(result[1]) || ""; } // jakpsatweb document.documentElement.onkeydown = function(e) { var event = e || window.event; var target = event.target || event.srcElement; var id = getUrlVar("id"); if ( document.getElementById("sb-container").style.display == "none" || document.getElementById("sb-container").style.display == "") { if (id == "galerie") { if(target.tagName == "img") return true; var akce = { 37: function() {window.location=document.getElementById('zpet').href;}, /* 38: function() { … akce při šipce nahoru … },*/ 39: function() {window.location=document.getElementById('dalsi').href;} /* 40: function() { … akce při šipce dolu … }*/ }; var a = akce[event.keyCode]; return a ? a() : true; }; }; } |
||
Časová prodleva: 12 let
|
0