Avatar billede loukas Mester
11. maj 2007 - 23:01 Der er 5 kommentarer og
1 løsning

funktion til blinkende baggrund

Jeg har den her funktion der får noget tekst til at blinke et par gange.
Men jeg vil meget gerne have lavet det sådan at det er baggrundsfarven i et tabelfelt der blinker i stedet.
Altså <td bgcolor="Skal_Blinke"></td>
Håber der er nogen som kan hjælpe mig, da jeg ikke er en ørn til jscript.

Koden:
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">

function blinke()
{
  window.setTimeout('changeBlink()',500)
  window.setTimeout('changeBlink()',1000)
  window.setTimeout('changeBlink()',1500)
  window.setTimeout('changeBlink()',2000)
  window.setTimeout('changeBlink()',2500)
  window.setTimeout('changeBlink()',3000)
  window.setTimeout('changeBlink()',3500)
  window.setTimeout('changeBlink()',4000)
}

function changeBlink()
{
  if(document.getElementById('MyBlink').style.color == 'black')
    document.getElementById('MyBlink').style.color = 'red';
  else
    document.getElementById('MyBlink').style.color = 'black';
}

        </SCRIPT>
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<body onLoad="blinke()">
<div id="MyBlink" style="color:black;">Teksten der blinker</div>
Avatar billede crazysnap Seniormester
12. maj 2007 - 13:34 #1
Hej loukas,


Det script du har der gør at dit element blinker 8 gange og ikke hele tiden (skal bare være sikker på du er klar over det og det er det du ønsker). At ændre det til at det er baggrundsfarven der blinker i stedet er relativt simpelt. Du skal bare udskifte style.color i changeBlink-metoden til style.backgroundColor.
For at være pædagogisk og får lige at rette nogle små-fejl i dit eksempel ovenover har jeg lavet et lille eksempel til dig der udfører det hele:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/TR/html401">
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
        <script type="text/JavaScript">
        function blinke(id)
        {
            window.setTimeout('changeBlink(\'' + id  + '\')',500);
            window.setTimeout('changeBlink(\'' + id  + '\')',1000);
            window.setTimeout('changeBlink(\'' + id  + '\')',1500);
            window.setTimeout('changeBlink(\'' + id  + '\')',2000);
            window.setTimeout('changeBlink(\'' + id  + '\')',2500);
            window.setTimeout('changeBlink(\'' + id  + '\')',3000);
            window.setTimeout('changeBlink(\'' + id  + '\')',3500);
            window.setTimeout('changeBlink(\'' + id  + '\')',4000);
        }

        function changeBlink(id)
        {
            if(document.getElementById(id).style.backgroundColor == 'white')
                document.getElementById(id).style.backgroundColor = 'red';
            else
                document.getElementById(id).style.backgroundColor = 'white';
        }
     
        </script>
    </head>
    <body onload="blinke('MyBlink'); blinke('tdBlink');">
       
        <table style="border: solid 1px gray;">
            <tr>
                <td>Dette blinker ikke</td>
            </tr>
            <tr>
                <td id="tdBlink">
                    Dette blinker
                </td>
            </tr>
        </table><br />
        <div id="MyBlink" style="color: black; width: 200px; background-color: White;">Teksten der blinker</div>
    </body>
</html>


Som du kan se af eksemplet er scriptet ændret lidt og du skal bare kalde "blinke(ID-et-på-et-element);" i onload på body-tag'en for at få dets baggrund til at blinke. Det betyder også at du kan få flere elementer på din side til at blinke på samme tid (som eksemplet demonstrerer).

Håber det var noget lignende det du ledte efter. :)


Mvh.

- Snap :)
Avatar billede mclemens Nybegynder
12. maj 2007 - 14:57 #2
Ovenstående kan også laves som:

<script type="text/javaScript">
  function blinke(id,x){
    s=document.getElementById(id).style;
    s.backgroundColor=(s.backgroundColor!="red")?"red":"white"
    if(--x>0)setTimeout("blinke('"+id+"','"+x+"')",500);
  }   
</script>

<body onload="blinke('MyBlink',5); blinke('tdBlink',6);">
Avatar billede mclemens Nybegynder
12. maj 2007 - 14:58 #3
(kun for at give et forkortet eksempel)
Avatar billede roenving Novice
12. maj 2007 - 22:46 #4
-- og i øvrigt er det mest hadede tag i html præcis blink-tagget, som selv Gecko-folket nu har erklæret som deprecated (det var Netscape-only fra starten !-)

-- så din kommentar om, at det skal være jscript, er måske langt mere relevant, end du aner, da Jscript præcis er M$-versionen af det, vi alle sidder og piller i i denne kategori, nemlig ECMA-script til browsere, normalt kaldet javascript efter en overenskomst mellem SUN og Netscape fra 1995, hvor en Netscape-guru havde udviklet LiveScript til brug for dynamik på websider ...

Hvis du taler om en lille ting, der lige blinker et par gange, mjah, så kan det måske accepteres, men jeg lukker altså browservinduet, hvis det indeholder en reklame, hvor baggrunden blinker, og medmindre det er afsindigt vigtigt, bliver sitet også bannet !o]
Avatar billede loukas Mester
22. maj 2007 - 12:27 #5
Tak for kommentarerne, "Blinket" bliver brugt på en webshop, når en bruger tilføjer en vare til kurven, blinker kurven et par gange for at gøre opmærksom på kurvens placering.
Du kan se den her: www.LaChica.dk
Som i kan se virker det som det skal nu :-)
Avatar billede mclemens Nybegynder
22. maj 2007 - 13:57 #6
Ja, det ser fint ud - det ses også at du lukkede
spørgsmålet uden at give point til Crazysnap :-|
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester