script prob

THE REAL TOOLKIT

Erfahrenes Mitglied
ich hatte mir mal nen kleines script geschrieben...
das ganze soll so aussehen dass wenn man über nen link fährt er glühen soll...
soweit so gut nur leider wird das script viel zu schnell ausgeführt...ich weiß nicht wie ich zwischen den einzelnen schritten es ganz kurz pausieren kann
sonst kriege ich immer ne out of memory fehlermeldung!

hier das script:
<script>
function glowit(){
if (document.all.glowtext.filters[0].strength==1)
document.all.glowtext.filters[0].strength=2
document.all.glowtext.filters[0].strength=3
document.all.glowtext.filters[0].strength=4
document.all.glowtext.filters[0].strength=5
document.all.glowtext.filters[0].strength=6
glowit2()
}
function glowit2(){
if (document.all.glowtext.filters[0].strength==6)
document.all.glowtext.filters[0].strength=5
document.all.glowtext.filters[0].strength=4
document.all.glowtext.filters[0].strength=6
document.all.glowtext.filters[0].strength=2
document.all.glowtext.filters[0].strength=1
glowit()
}
if (document.all)
window.onload=glowit
</script>

und hier der style
<style>
<!--
#glowtext{
filter:glow(color=#0000CC,strength=1);
width:100%;
}
-->
</style>

und dann
<p id ="glowtext"...
 
versuchs mal damit

200 ist die Verzögerung bis zum nächsten Schritt in millisekunden, du kannst sie anpassen bis es einen guten Effekt gibt...

Code:
function glowup( x )
{ 
     document.all.glowtext.filters[ 0 ].strength=x;
     x++;
     if( x <= 6 )
          setTimeout( "glowup( " + x + " )", 200 );
     else
          setTimeout( "glowdn( " + x + " )", 200 );  
}

function glowdn( x )
{ 
     document.all.glowtext.filters[ 0 ].strength=x;
     x--;
     if( x >= 0 )
          setTimeout( "glowdn( " + x + " )", 200 );  
}
 
if( document.all ) 
     window.onload=new Function("glowup( 1 )");
 
vielen dank! :)

und noch mehr probs: ;(

1:wenn ich zwei soclher texte mache bekomme ich nen fehler also nach dem schema:
<p id="glowtext" onmouseover="glowup( 1 )" onmouseout="glowstop()">test</p>

2:
ich habe noch keinen vernünftigen mouseout hinbekommen:
function glowstop()
{
document.all.glowtext.filters[0].strength=1
}

so geht das nur ganz kurz und dann geht es weiter als wäre nix geschehen
 
Zuletzt bearbeitet:
so sollte es funktionieren:

Code:
function glowup( x )
{ 
     document.all.glowtext.filters[ 0 ].strength=x;
     x++;
     if( x <= 6 && over )
          timer=setTimeout( "glowup( " + x + " )", 200 );
     else
          timer=setTimeout( "glowdn( " + x + " )", 200 );  
}

function glowdn( x )
{ 
     document.all.glowtext.filters[ 0 ].strength=x;
     x--;
     if( x >= 0 && over )
          timer=setTimeout( "glowdn( " + x + " )", 200 );  
}

function glowstop()
{
     clearTimeout( timer );
     over=false;
}
 
if( document.all ) 
     window.onload=new Function("over=true; glowup( 1 )");
 
thx,fast perfekt...
das einzige prob ist jetzt noch dass wenn ich zwei solcher textareas habe
die fehlermedung kommt dass die variable timer undefiniert ist :(

also:
<p id="glowtext" onmouseover="over=true;glowup( 1 )" onmouseout="glowstop()">text zum glowen</p>
normaler text
<p id="glowtext" usw...
 
Zuletzt bearbeitet:
dann benütze am besten so etwas (ich habe das nicht getested also könnten jederzeit Fehler auftreten...):

script-bereich:

Code:
//alle deine glow-Objekte mit ID
glowobjs=new Array( "glowobj0", "glowobj1", "text" );

for( x in glowobjs )
     glowobjs[ x ]=new glowobj( glowobjs[ x ] );

function glowobj( obj )
{
     this.elm=document.all[ obj ];
     this.over=false;
     this.x=0;
     this.obj=obj + "Object"; 
     eval( this.obj + "=this" );
}

glowobj.prototype.glowup=function()
{ 
     this.elm.filters[ 0 ].strength=x;
     this.x++;
     if( this.x <= 6 && this.over )
          this.timer=setTimeout( this.obj + "glowup()", 200 );
     else
          this.timer=setTimeout( this.obj + "glowdn()", 200 );  
}

glowobj.prototype.glowdn=function( x )
{ 
     this.elm.filters[ 0 ].strength=x;
     this.x--;
     if( this.x >= 0 && this.over )
          this.timer=setTimeout( this.obj + "glowdn()", 200 );  
}

glowobj.prototype.glowstop=function()
{
     clearTimeout( this.timer );
     this.over=false;
     this.glowdn():
}

im body:

Code:
<p id="glowobj0" onmouseover="glowobjs[ 0 ].over=true;glowobjs[ 0 ].glowup()" onmouseout="glowobjs[ 0 ].glowstop()">text zum glowen</p>

<p id="glowobj1" onmouseover="glowobjs[ 1 ].over=true;glowobjs[ 1 ].glowup()" onmouseout="glowobjs[ 1 ].glowstop()">text zum glowen</p>

<p id="text" onmouseover="glowobjs[ 2 ].over=true;glowobjs[ 2 ].glowup()" onmouseout="glowobjs[ 2 ].glowstop()">text zum glowen</p>
 
und so?

Code:
if( document.all )
{

        //alle deine glow-Objekte mit ID
        glowobjs=new Array( "glowobj0", "glowobj1", "text" );

        for( x in glowobjs )
        {
             id=glowobjs[ x ];
             glowobjs[ x ]=new glowobj( id );
        }

}

function glowobj( obj )
{
     this.el=document.all[ obj ];
     this.over=false;
     this.x=0;
     this.obj=obj + "Object";
     eval( this.obj + "=this" );
}

glowobj.prototype.glowup=function()
{
     this.el.filters[ 0 ].strength=x;
     this.x++;
     if( this.x <= 6 && this.over )
          this.timer=setTimeout( this.obj + "glowup()", 200 );
     else
          this.timer=setTimeout( this.obj + "glowdn()", 200 );
}

glowobj.prototype.glowdn=function( x )
{
     this.el.filters[ 0 ].strength=x;
     this.x--;
     if( this.x >= 0 && this.over )
          this.timer=setTimeout( this.obj + "glowdn()", 200 );
}

glowobj.prototype.glowstop=function()
{
     clearTimeout( this.timer );
     this.over=false;
     this.glowdn();
}

function startglow( nr )
{
        if( document.all )
        {
                glowobjs[ nr ].over=true;
                glowobjs[ nr ].glowup();
        }
}

function stopglow( nr )
{
        if( document.all )
        {
                glowobjs[ nr ].glowstop();
        }
}

body:

Code:
<p id="glowobj0" onmouseover="startglow( 0 )" onmouseout="stopglow( 0 )">text zum glowen</p>

<p id="glowobj1" onmouseover="startglow( 1 )" onmouseout="stopglow( 1 )">text zum glowen</p>

<p id="text" onmouseover="startglow( 2 )" onmouseout="stopglow( 2 )">text zum glowen</p>
 
"this.el.filters"
ist null oder kein objekt :(

ein weiteres prob ist dass für den text im boady jetzt ja garnicht mehr die id="glowtext" vergeben ist...
da das script aber diesen style ändert muss das ja drinbleiben

ich habe hier mal kurz ne testseite hochgeladen

villeicht hab ich ja irgendwo anders nen fehler gemacht...

http://therealtoolkit.net/-test.html

so schwer kann das doch nicht sein...
 
ein weiteres prob ist dass für den text im boady jetzt ja garnicht mehr die id="glowtext" vergeben ist...

das script ändert nicht einen gewissen style sondern ein gewisses Element, am einfachsten machst du das ganze mit einer css-class:

im body:
Code:
<p id="glowobj0" class="glowtext" onmouseover="startglow( 0 )" onmouseout="stopglow( 0 )">text zum glowen</p>

<p id="glowobj1" class="glowtext" onmouseover="startglow( 1 )" onmouseout="stopglow( 1 )">text zum glowen</p>

<p id="text" class="glowtext" onmouseover="startglow( 2 )" onmouseout="stopglow( 2 )">text zum glowen</p>

und im style:
Code:
.glowtext{ 
filter:glow(color=#0000CC,strength=1); 
width:100%; 
}
 

Neue Beiträge

Zurück