Avatar billede rasmus-madsen Nybegynder
17. maj 2007 - 23:20 Der er 9 kommentarer og
1 løsning

Hvis div fra start.

Hej allesammen.

Bruger en af phonixv (tror jeg det staves) løsninger til nogle div og layer.  Sådan her er koden :
<script type="text/javascript">
akt = null;

var i, l;
function visTxt(nr) {
  if (akt != nr) {
    akt = nr;
    t = document.getElementById("minDiv");
    t.style.visibility = "hidden";
    t.innerHTML = document.getElementById("txt" + nr).innerHTML;
    t.style.left = -20;
    if (document.all)
      t.filters.opacity = 0;
    else
      t.style.MozOpacity = 0;
    i = 0;
    l = -20;
    t.style.visibility = "visible";
    loopTxt();
  }
}

function loopTxt() {
  ++i;
  t = document.getElementById("minDiv");
  l += Math.ceil((0 - l) * 0.25);
  if (l > 0)
    l = 0;
  t.style.left = l;
  if (document.all)
    t.filters.alpha.opacity = i * 5;
  else
    t.style.MozOpacity = (i * 5) / 100;
  if (i < 20)
    setTimeout("loopTxt();", 50);
}
</script>

Men skal have diven med navn txt0 til at være vist når siden loader. Derefter kan man trykke på et link og divn txt1 kommer frem, og fjerner txt0.

Ved nogle hvordan og forstår i mig ?
Avatar billede crazysnap Seniormester
18. maj 2007 - 12:00 #1
Hej rasmus-madsen,


Jeg forestår udemærket hvad det er du mener. Til dette skal du kalde visTxt(0); ved din body onload event. Der dog en del små-fejl i scriptet (f.eks. virker det ikke i IE7, der er variable som ikke er erklæret og du bruger den ikke valide innerHTML). :)

Jeg har kigget scriptet igennem og rettet små-fejlene samt lavet et eksempel til dig som virker for mig i både IE og FF:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://schemas.microsoft.com/intellisense/html-401">
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
        <script type="text/JavaScript">
        var akt = null;
        var divRef = null;
       
        var i, l, t;
        function visTxt(nr) {
          if (akt != nr) {
            akt = nr;
            t = document.getElementById("minDiv");
           
            var divNr = document.getElementById("txt" + nr).cloneNode(true);
            divNr.style.visibility = "visible";
           
            if(divRef != null)    //Remove any previous added txt-node
              t.removeChild(divRef);
           
            t.appendChild(divNr); //Add txt-node to div
            divRef = divNr;      //Update current div-node reference
           
            t.style.left = -20 + "px";
           
            setOpacity(t, 0);
           
            i = 0; l = -20;
            t.style.visibility = "visible";
            loopTxt();
          }
        }

        function loopTxt() {
          ++i;
          if(t != null)
            t = document.getElementById("minDiv");
           
          l += Math.ceil((0 - l) * 0.25);
          if (l > 0) l = 0;
           
          t.style.left = l + "px";
          setOpacity(t, i * 5);
         
          if (i < 20)
            setTimeout("loopTxt();", 50);
        }
       
        function setOpacity(t, op)
        {
            if(document.all)
            {
                if(window.XMLHttpRequest)//IE7
                    t.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=" + op + ");";
                else // IE4-6
                    t.filters.alpha.opacity = op;                   
            }
            else
                t.style.MozOpacity = op / 100;
        }


        </script>
    </head>
    <body onload="visTxt(0);">
        <table>
            <tr>
                <td><a href="#" onclick="visTxt(1);">Click to change to txt1</a></td><td><a href="#" onclick="visTxt(0);">Click to change to txt0</a></td>
            </tr>
            <tr>
                <td>
                    <div id="minDiv" style="width: 200px; height: 100px; visibility: visible; background-color:InactiveBorder; border: solid 1px black;">
                   
                    </div>
                </td>
            </tr>
        </table>
        <div id="txt0" style="visibility: hidden;">
            Dette er div 0
        </div>
        <div id="txt1" style="visibility: hidden;">
            Dette er div 1
        </div>
    </body>
</html>



Mvh.

- Snap :)
Avatar billede olebole Juniormester
18. maj 2007 - 13:08 #2
<ole>

Det er yderst sjældent en god idé, at spørge på andet, end det, man skal bruge - og XMLHttpRequest har intet med opacity at gøre  ;o)

function setOpacity(t, op) {
    if (t.filters) t.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=" + op + ")";
    else if (typeof t.style.opacity!="undefined") t.style.opacity = op / 100;
    else if (typeof t.style.MozOpacity!="undefined") t.style.MozOpacity = op / 100;
}

/mvh
</bole>
Avatar billede olebole Juniormester
18. maj 2007 - 13:10 #3
- og så giver koden:
                if(window.XMLHttpRequest)//IE7
                    t.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=" + op + ");";
                else // IE4-6
                    t.filters.alpha.opacity = op;

- iøvrigt absolut ingen mening  =)
Avatar billede crazysnap Seniormester
18. maj 2007 - 13:27 #4
Tjahh, ok fint, så rasmus-madsen du skal erstatte setOpacity functionen med den ole-bole foreslår. Så er alle tilfredse! :)


Mvh.

- Snap
Avatar billede olebole Juniormester
18. maj 2007 - 13:43 #5
Ikke helt. Olebole ville f.eks. blive meget mere tilfreds, hvis man tænker lidt over det, man skriver ... og ikke bare skriver noget for at gøre én eller anden tilfældig, halvgammel koder tilfreds  ;o)
Avatar billede rasmus-madsen Nybegynder
18. maj 2007 - 16:40 #6
Jeg takker for jeres hjælp.

Vil i begge svarer :)
Avatar billede crazysnap Seniormester
18. maj 2007 - 17:14 #7
Det var så lidt og et svar herfra... :)


Mvh.

- Snap
Avatar billede crazysnap Seniormester
18. maj 2007 - 17:15 #8
hmpf, et svar.. ;)
Avatar billede rasmus-madsen Nybegynder
19. maj 2007 - 17:59 #9
Da du har lavet hele forarbejdet for du sku pointsne :) .
Så må ole lige skrive hvis jeg skal lave et til ham ;)
Avatar billede crazysnap Seniormester
19. maj 2007 - 21:17 #10
Tak for pointene ihvertfald! :)


Og held og lykke med det!


Mvh.

- Snap :)
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