webForumDet fria alternativet

ska ej kunna klicka utanför div.

5 svar · 468 visningar · startad av phred

phredMedlem sedan nov. 2005314 inlägg
#1

Hej!

Då är jag tillbaka, jag har en div som jag öppnar och lägger "ovanpå" sidan.
Problemet är att jag vill inte att man ska kunna klicka utanför den öppnade diven sålänge den är öppen (som en vanlig alert typ)

Någon som har en bra idé ?

Peter SMedlem sedan dec. 20025 483 inlägg
#2
<script>
document.onclick = function(e)
{
 e = window.event || e;
 var currElm = window.event ? e.srcElement : e.target;
 var div = document.getElementById("myDiv");
 if (div.style.display == "block"){
  while (currElm){
   if (currElm == div) return;
   currElm = currElm.parentNode;
  }
  if (window.event)
   e.returnValue = false;
  else
   e.preventDefault();
 }
}
</script>
<div id="myDiv" style="display:none;background:red; padding:5px"><a href="javascript:document.getElementById('myDiv').style.display='none';void(0);">Hide div</a></div>
<a href="http://www.webforum.nu/">test</a>
<a href="javascript:document.getElementById('myDiv').style.display='block';void(0);">Show div</a>
phredMedlem sedan nov. 2005314 inlägg
#3

Tack för det peter men det fungerar inte riktigt som jag tänkt mig.

Jag vill att det ska likna en vanlig alert så mycket det går, använder jag scriptet ovan så kan jag skriva i formulär osv, jag behöver inte funktonen att man inte kan klicka någonstans i webbläsaren men i alla fall ingenstans på siten.

klickar man utanför min div så vill jag att den ska få "focus" direkt, som en alert.

Det här kanske är det närmaste man kan komma ?

phredMedlem sedan nov. 2005314 inlägg
#4

jag har nu slängt in en div som täcker hela sidan och ligger "under" den diven som jag öppnat.

Detta gör att jag inte kan klicka på något i FF, Opera och Safari dock så kan jag klicka på länkar och markera text i IE(6 & 7), har svårt att hitta någon lösning på detta.

Peter känner u dig sugen ? ;)

Sjävlklart får någon annan ge sig på en lösning också.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#5

Vad sägs om att du i IE ger diven en bakgroundsfärg samt (nästan) genomskinlig alfa-transparens. filter: alpha(opacity=1); background-color: black;
Detta bör stoppa musevents.
Med tanke på vad du gör så kan det vara en fin designgrej att dessutom utnyttja detta trick för att täcka sidan med en semi-transpsarant ruta. Då blir det mer så här: filter: alpha(opacity=40); opacity: 0.4; background-color: black;

phredMedlem sedan nov. 2005314 inlägg
#6

helt riktigt så fungerar det, men då sätter den ju opcity på allt som ligger i min div som är 100% och det vill jag ju inte :/

EDIT*

jag löste det genom att lägga en 1x1 px genomsinlig gif som bakgrund i min 100% div. Det fungerar perfekt i FF, IE 6 & 7, Opera och Safari.

Tack för hjälpen.

127 ms totalt · 3 externa anrop · v20260731065814-full.1211964f
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)