Eftersom ingen svarar.. så provar jag själv hela tiden...
har gjort detta för att se om man kan få en att fada in på befallning.. vet inte om det är på rätt väg.. eller om det änns är i närheten.. fast det känns så... men nu klagar den helt plötsligt på att ett objekt krävs...??!
Detta är säkert fel, fade() fungerar som den ska... fade2() gör det inte.. och det är för att jag inte ändrat något förutom ett minut på "diff" när funktionen körs om... antar att det inte är allt som måste göras...
antar att det har med denna rad att göra:
opacity=(opacity)?opacity:(diff<0)?100:0; opacity+=diff;
skulle någon kunna förklara hur man löser det.. och gärna också steg för steg.. vad hela den raden gör... med alla frågetecken, colon, mm..
Hehe... Fan.. du löser det här åt mig jawbreaker...
en liten till fråga bara... ditt script fungerar än så länge precis som jag vill ha det... förrutom en sak!
När den fadear ut.. så försvinner den inte helt... den synns jättesvagt.. försökte testa lite.. men allt jag får den att göra är att gå långsammare..!!
Och jag som trodde att man programmerade bättre efter ett par öl. Så fel man kan ha, hehe. Jag uppdaterade inlägget ovan, så plocka funktionen igen och testa...
Nu till nästa problem... haha.. jag får aldrig nog!!!
Nu vill jag på något sätt impletera det i det andra scriptet... typ som jag gjort neden... förutom att det jag gjort inte fungerar.. men du kanske förstår min tanke...
<html>
<head>
<title>xxx</title>
<script type="text/javascript">
var g_tmr = null;
var g_opacity = 0;
function show(obj, elmId) {
if(obj.timeout)
clearTimeout(obj.timeout);
document.getElementById(elmId).style.display = "block";
g_tmr = null;
g_opacity = 100;
fade(elmId,10);
}
function hide(obj, elmId) {
g_tmr = null;
g_opacity = 100;
fade(elmId,10);
obj.timeout = setTimeout(function(){ close(elmId) }, 500);
}
function close(elmId) {
document.getElementById(elmId).style.display = "none";
}
function fade( p_id, p_diff )
{
if ( g_tmr )
clearTimeout( g_tmr );
g_opacity += p_diff;
if ( g_opacity > 100 )
g_opacity = 100;
else if ( g_opacity < 0 )
g_opacity = 0;
document.getElementById( p_id ).style.visibility = "visible";
if ( document.getElementById && document.all )
document.getElementById( p_id ).style.filter = "alpha(opacity="+g_opacity+")";
else if ( document.getElementById && !document.all )
document.getElementById( p_id ).style.MozOpacity = g_opacity / 100;
if ( g_opacity > 0 && g_opacity < 100 )
g_tmr = setTimeout( "fade('"+p_id+"',"+p_diff+");", 10 );
else if ( 0 == g_opacity )
document.getElementById( p_id ).style.visibility = "visible";
}
</script>
<style type="text/css">
.ny { position: absolute; left: 350px; width:200; display: none; background: #ccc; }
</style>
</head>
<body>
<table>
<tr>
<td><span onmouseover="show(this, 'e01')" onmouseout="hide(this, 'e01')">Bild</span></td>
<td><div class="ny" id="e01">Extra text</div>
Lite mer text som delvis döljs när extra-texten syns.</td>
</tr>
<tr>
<td><span onmouseover="show(this, 'e02')" onmouseout="hide(this, 'e02')">Bild</span></td>
<td><div class="ny" id="e02">Extra text</div>
Lite mer text som delvis döljs när extra-texten syns.</td>
</tr>
<tr>
<td><span onmouseover="show(this, 'e03')" onmouseout="hide(this, 'e03')">Bild</span></td>
<td><div class="ny" id="e03">Extra text</div>
Lite mer text som delvis döljs när extra-texten syns.</td>
</tr>
</table>
</body>
</html>
Tror detta spökar...
var g_tmr = null;
var g_opacity = 0;
Funderar på om man kanske kan göra funktionen som en class istället.. eller liknande.. och anropa funktionen med olika "namn" för varje lager som ska visas/döljas ...
Aldrig blir du nöjd ;)
Nu har jag mixtrat lite med koden, och voila:
<html>
<head>
<title>Fader</title>
<script language="javascript" type="text/javascript">
<!--
var g_fdrs = new Array();
function Fade( p_id )
{
this.id = p_id;
this.obj = document.getElementById( p_id );
this.tmr = null;
this.opacity = 0;
this.diff = 10;
this.fadeIn = FDR_fadeIn;
this.fadeOut = FDR_fadeOut;
this.fade = FDR_fade;
}
function FDR_fadeIn()
{
this.diff = 10;
this.obj.style.display = "block";
this.fade();
}
function FDR_fadeOut()
{
this.diff = -10;
this.fade();
}
function FDR_fade()
{
if ( this.tmr )
clearTimeout( this.tmr );
this.opacity += this.diff;
if ( this.opacity > 100 )
this.opacity = 100;
else if ( this.opacity < 0 )
this.opacity = 0;
if ( document.getElementById && document.all )
this.obj.style.filter = "alpha(opacity="+this.opacity+")";
else if ( document.getElementById && !document.all )
this.obj.style.MozOpacity = this.opacity / 100;
if ( this.opacity > 0 && this.opacity < 100 )
this.tmr = setTimeout( "g_fdrs['" + this.id + "'].fade();", 10 );
else if ( 0 == this.opacity )
this.obj.style.display = "none";
}
function doOnLoad()
{
var d = document.getElementsByTagName( "span" );
for ( var i = 0; i < d.length; i++ )
{
if ( 0 == d.item(i).id.indexOf( "fade" ) )
{
var id = d.item(i).id + "_obj";
g_fdrs[id] = new Fade( id );
d.item(i).onmouseover = new Function( "g_fdrs['" + id + "'].fadeIn();" );
d.item(i).onmouseout = new Function( "g_fdrs['" + id + "'].fadeOut();" );
}
}
}
//-->
</script>
<style type="text/css">
.ny { position: absolute; left: 350px; width:200; display: none; background: #ccc; }
</style>
</head>
<body onload="doOnLoad();">
<table>
<tr>
<td><span id="fade1">Bild</span></td>
<td><div class="ny" id="fade1_obj">Extra text</div>
Lite mer text som delvis döljs när extra-texten syns.</td>
</tr>
<tr>
<td><span id="fade2">Bild</span></td>
<td><div class="ny" id="fade2_obj">Extra text</div>
Lite mer text som delvis döljs när extra-texten syns.</td>
</tr>
<tr>
<td><span id="fade3">Bild</span></td>
<td><div class="ny" id="fade3_obj">Extra text</div>
Lite mer text som delvis döljs när extra-texten syns.</td>
</tr>
</table>
</body>
</html>
Nu är grejen den att dina span-taggar med onmouseover och onmouseout måste ha ett id som börjar med "fade". Tillhörande div-tagg som ska visas/försvinna måste ha samma id, fast med "_obj" på slutet. Du ser ju i koden hur det ser ut.
Och om det här inte fungerar så får du ingen mer hjälp förrän imorgon - kvällens öl har tagit ut sin rätt, så nu är det sovdags...
267 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25