Hi@all
Ich versuche einen Container nachträglich zu platzieren und Größenmäßig anzupassen.
Leider funktioniert es immer erst auf den zweiten Klick ???
Das Script:
	
Aufruf mit:
	
Der Layer:
	
Hinweis: Der Inhalt (meistens ein Bild) für den Layer wird zuvor durch eine andere Funktion geladen.
Also, wie gesagt, das Script funktioniert soweit, aber leider erst wenn man den Lnk-Aufruf ein zweites mal anklickt,
beim ersten Klick wird zwar der Layer angezeigt, aber weder größe noch Position stimmen,
und wenn zuvor ein größer Inhalt geladen wurde bleibt der Layer groß bis man ein zweites mal auf den kleineren Inhalt klickt.
Hoffe auf Verständnis und bitte um Hilfe.
Thx@all
					Ich versuche einen Container nachträglich zu platzieren und Größenmäßig anzupassen.
Leider funktioniert es immer erst auf den zweiten Klick ???
Das Script:
PHP Code:
	
	
function MM_showHideLayers() 
{ 
 //v6.0
 var i,p,v,t,obj,sW=0,sH=0,oW=0,oH=0,args=MM_showHideLayers.arguments;
 for (i=0; i<(args.length-2); i+=3) 
 if ((obj=MM_findObj(args[i]))!=null) 
 {
  v=args[i+2];
  t=args[i+1];
  if (obj.style)
  {
   v=(v=='show')?'block':(v=='hide')?'none':v; 
  }
  obj.style.display  = v;  
  // Position berechnen
  sW = document.body.offsetWidth;
  sH = document.body.offsetHeight;
  var bild=document.getElementById('picture');
  pW = bild.offsetWidth;
  pH = bild.offsetHeight;
  oW = obj.offsetWidth;
  oH = obj.offsetHeight;
  // Wenn Bild größer wie Bildschirm Objekt auf Bildschrimgröße setzen
  if( pH > sH ) 
  {
   oH = (sH*90/100);
   obj.style.height = oH + "px";
   obj.style.top = ((sH/2)-(oH/2)) + "px";   
   obj.style.overflow = "scroll";
  }
  else
  {
   // Layer anzeigen
   obj.style.top = ((sH/2)-(oH/2)) + "px";
  }
  obj.style.left = ((sW/2)-(oW/2)) + "px";  
  obj.style.position = "fixed";
  // Textausgabe
  if(t)
  {
   document.getElementById('text').innerHTML = t;
   document.getElementById('text').style.display = "block";
  }
  else
  {
   document.getElementById('text').innerHTML = "";
   document.getElementById('text').style.display = "none";
  }
  obj.style.display  = "none"  ;
  obj.style.display  = v;  
 }
}
//--> 
PHP Code:
	
	
MM_showHideLayers('layer','','show') 
PHP Code:
	
	
<!-- Beginn Layer Bildanzeige -->
<div id="layer" style="position:absolute; top:0 left:0; z-index:1; border: 2px solid black; 
background:#FFFFFF; padding:5px; display:none;">
<div style="position:absolute; right:5px; width:18px; border: 1px solid black; 
background:#FFFFFF; font-weight:bold; text-align:center; vertical-align:middle; display:inline; ">
<a href="javascript:MM_showHideLayers('layer','','hide')" 
onmouseover="top.status='LAYER SCHLIESSEN';return true;" 
title="SCHLIESSEN" 
style="text-decoration:none; color:#000;"><b>x</b></a></div>
<div id="text" style="color:#000000; font-weight:bold; display:none;"></div>
<img src="http://www.php-resource.de/forum/images/null_pix.gif" id="picture" 
style="cursor:pointer; border:1px solid black;" title="Klick -> Close" alt="" 
onclick="javascript:MM_showHideLayers('layer','','hide')" />
</div>
<!-- Ende Layer Bildanzeige --> 
Also, wie gesagt, das Script funktioniert soweit, aber leider erst wenn man den Lnk-Aufruf ein zweites mal anklickt,
beim ersten Klick wird zwar der Layer angezeigt, aber weder größe noch Position stimmen,
und wenn zuvor ein größer Inhalt geladen wurde bleibt der Layer groß bis man ein zweites mal auf den kleineren Inhalt klickt.
Hoffe auf Verständnis und bitte um Hilfe.
Thx@all
          
ointer).
Comment