Avatar billede learner Praktikant
31. marts 2007 - 16:21 Der er 7 kommentarer og
1 løsning

banner i siden der følger med ned

Hejsa, jeg har set på gulgratis at banneret i højre side følger med ned. Hvordan er det lavet? Er det svært?
Avatar billede crazysnap Seniormester
01. april 2007 - 14:58 #1
Hej learner,


Nej det er ikke særlig svært, du kan jo se deres kode i scroll.js. Jeg har kopieret deres javascript kode ind i en html-fil og lavet et lille eksempel til dig så du kan se hvordan det virker:    :)



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
        <script type="text/JavaScript">
        var bbTimer = null;
        var bbCounter = 0;
        var bbOffset = 0;
        var bbtop=20;

        function updateBillboard() {
            var bb=document.getElementById('billboard');
            var window_top=window.bbtop ? bbtop : getY(bb);
            if (document.body&&(typeof document.body.scrollTop!='undefined')) {
                if (document.documentElement&&document.documentElement.scrollTop) {
                    window_top=Math.max(document.documentElement.scrollTop,window_top);
                }
                window_top=Math.max(document.body.scrollTop,window_top);
            } else if(window.pageYOffset)
                window_top=Math.max(window.pageYOffset,window_top);

            if (bbCounter>1) {
                if (bbCounter == 20)
                    bbOffset = parseInt(bb.style.top) ? parseInt(bb.style.top) : getY(bb);

                bbCounter--;
                window_top = bbOffset + Math.round((window_top-bbOffset)*(Math.cos(Math.PI/20*bbCounter)/2+0.5));
                bbTimer = setTimeout(updateBillboard, 35);
            }
            bb.style.top=window_top+"px";

            bbTimer = null;
        }

        function bbUpdate() {
            if (bbTimer != null)
                clearTimeout(bbTimer);

            bbCounter = 20;
            bbTimer = setTimeout(updateBillboard, 500);
        }

        function position_billboard() {
            var bb=document.getElementById('billboard');
            var scroll_top=0;
            if (document.body&&(typeof document.body.scrollTop!='undefined')) {
                if (document.documentElement&&document.documentElement.scrollTop)
                    scroll_top=document.documentElement.scrollTop;
                else
                    scroll_top=document.body.scrollTop;
            } else if(window.pageYOffset) {
                scroll_top=window.pageYOffset;
            }
            var frame_top="3";
            if (scroll_top<bbtop)
                frame_top=bbtop-scroll_top;
            bb.style.top=frame_top+'px';
        }

        function billboard() {
            var bb;
            if(!(bb=document.getElementById('billboard')))
                return;

            if ((navigator.appName == "Microsoft Internet Explorer")&&(navigator.platform != "MacPPC")&&(navigator.platform != "Mac68k"))
            {
                bb.style.position = 'absolute';
                window.attachEvent("onscroll", bbUpdate);
                window.onresize = updateBillboard;
                updateBillboard();
            } else {
                position_billboard();
                bb.style.position = 'fixed';
                window.onresize = position_billboard;
                window.onscroll = position_billboard;
            }
        }

        function getX(obj) {
            return (obj.offsetParent==null ? obj.offsetLeft : obj.offsetLeft+getX(obj.offsetParent));
        }

        function getY(obj) {
            return (obj.offsetParent==null ? obj.offsetTop : obj.offsetTop+getY(obj.offsetParent));
        }
        </script>
    </head>
    <body onload="billboard();">
        <table width="100%">
            <tr>
                <td align="center">
                    <table width="600" style="height: 1200px;">
                        <tr>
                            <td style="border: solid 1px black;">
                                Hej hej, Her er hovedsiden..
                            </td>
                            <td style="width: 100px" align="left">
                           
                                <div id="billboard">
                                    <table style="border: solid 1px gray; height: 200px; background-color: White;" width="100">
                                        <tr>
                                            <td>
                                                Dette er banneret
                                            </td>
                                        </tr>
                                        <tr>
                                            <td>
                                                <a href="http://www.google.dk">Alt kan proppes herind</a>
                                            </td>
                                        </tr>
                                    </table>
                                </div>
                               
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
    </body>
</html>



Overodnet handler det bare om at sætte onscroll event'et og håndtere en flydende <div> tag med id="billboard".



Mvh.


- Snap :)
Avatar billede learner Praktikant
01. april 2007 - 18:07 #2
Mega Fedt :O)
Det er jo let at gå til når man bare kan gennemskue skidtet :o)

Tusind tak :o)

Mvh
Learner
Avatar billede crazysnap Seniormester
01. april 2007 - 18:47 #3
Det var så lidt, smider et svar så idet det lyder som om du kunne bruge det! :)


Mvh.

- Snap
Avatar billede learner Praktikant
01. april 2007 - 23:06 #4
ja nu har jeg fået det til at virke nogenlunde

Tak
Avatar billede crazysnap Seniormester
02. april 2007 - 09:33 #5
Ok, perfekt! :)

Tak for pointene! og du må da endelig skrive hvis der er noget som volder problemer. :)


Mvh.

- Snap
Avatar billede learner Praktikant
02. april 2007 - 19:39 #6
Jo tak jeg har godtnok lidt bøvl med at få det placeret korrekt på siden. Jeg eksperimenterer på charter-rejser.info der kan du se hvad jeg har gang i :o)
Det kunne jo være du kan assistere mig lidt :o)
Avatar billede crazysnap Seniormester
02. april 2007 - 20:09 #7
Det ser da meget velplaceret ud?..

Hvor kunne du godt tænke dig at have det placeret henne? Og hvad er dit problem vedrørende placeringen lige pt.?


Mvh.

- Snap
Avatar billede learner Praktikant
03. april 2007 - 21:22 #8
hmm tjae jeg fandt selv ud af det :o)

Men takker :o)
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