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
Kommentar