Avatar billede mads375 Juniormester
13. februar 2014 - 22:30 Der er 6 kommentarer og
1 løsning

kald ektern javascript automatisk når en side loades

Hejsa

Jeg har de sidste par dage siddet og prøvet at lære lidt html5. Jeg har nu fået opbygget en side, og vil gerne kalde et banner jeg har lavet med javascript. Dette banner vil jeg gerne have startet når siden loades i <header id="header">. Er der nogle der ved hvordan jeg kalder mit eksterne banner til at starte automatisk?

jeg sætter lige hele koden ind for en god ordensskyld.

<!DOCTYPE html>
<html>
<head>
<meta charset="US-ASCII">
<title>Index</title>
<link rel="stylesheet" type="text/css" href="css/reset.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
<script type="text/javascript" src="javascript/animation.js"></script>
</head>
<body>
    <div id="big_wrapper">
        <header id="header">
            <script language="javascript">showImage();</script>
           
        </header>
        <nav id="nav">
            <ul>
                <li>Home</li>
                <li>Pictures</li>
                <li>Articles</li>
                <li>News</li>
                <li>Contact</li>
            </ul>
        </nav>
        <section id="mainsection">
            <article id="article">
                <header>
                    <hgroup>
                        <h1>Headline</h1>
                        <h2>Text</h2>
                    </hgroup>
                        <p>This is the main content</p>
                </header>
                <footer>
                    Written By Mads
                </footer>
            </article>
            <article>
                <header>
                    <p>This is a picture</p>
                </header>
                    <figure id="pictures">
                        <img src="img/tavle.jpg" width="200px" height="150px">
                        <figcaption>Dette er en tavle</figcaption>
                    </figure>
                <footer>
                    <p>Taken By Mads</p>
                </footer>
            </article>
        </section>
        <aside id="side_news">
            <h4>Yesterday News</h4>
        </aside>
        <aside id="side_news">
            <h4>Old News</h4>
        </aside>
        <footer id="footer">
            By | Mads
        </footer>
   
    </div>
</body>
</html>

_____

javascript

var img = [
    "img/1.jpg",
    "img/2.jpg",
   
];

img.current = 0;
function showImage(i) {
    $('#img').fadeOut( function() {
        this.src = img[img.current];
        $(this).fadeIn();
    });
}
function NextImage() {
    img.current = (img.current+1) % img.length;
    showImage(img.current);
}
function PreviousImage() {
    if (--img.current < 0) { img.current = img.length - 1; }
    showImage(img.current);
}
onload = function(){
    showImage(0);
};


Med Venlig Hilsen
Mads
Avatar billede HBP2 Praktikant
13. februar 2014 - 22:43 #1
For det første ser det ud til at du glemmer at loade jQuery.

Og når du nu bruger jQuery, så bør dit onload-halløj laves om til:

$(function() {
    // dette vil blive kørt når siden er loadet
    showImage(0);
});

Endelig så henviser
  $('#img').fadeOut()...
til et element med id 'img' - det synes jeg ikke lige jeg kan finde i din HTML.
Avatar billede mads375 Juniormester
14. februar 2014 - 12:17 #2
Hvad hvis jeg dropper funktionen der lige for at forstå det korrekt. Hvis jeg gerne vil kalde et javascript som kun er under <header>, og ikke resten af siden, hvordan gør jeg så det? Som det er nu, så kører denne funktion på baggrunden, men ikke inde i min header.

</head>
<body>
    <div id="big_wrapper">
        <header id="header">
            <canvas>
                <img src="img/1.jpg" onload="bgChanger()">
            </canvas>
        </header>
        <nav id="nav">
            <ul>

java script:

function bgChanger (end) {
document.getElementsByTagName("body")[0].style.backgroundColor = "#" + end;
}
//red
setTimeout(function() { bgChanger("FF0000")}, 0);
//black
setTimeout(function() { bgChanger("000000")}, 100);
//purple
setTimeout(function() {bgChanger("AA00EE")}, 200);
//green
setTimeout(function() {bgChanger("00FF00")}, 300);
//blue
setTimeout(function() {bgChanger("0000FF")}, 400);
//gray
setTimeout(function() {bgChanger("CCCCCC")}, 500);
//white (pause)
setTimeout(function() {bgChanger("FFFFFF")}, 600);
Avatar billede HBP2 Praktikant
14. februar 2014 - 17:51 #3
Hvad mener du med "javascript som kun er under <header>"? Når siden indlæses, så ender alt javacript dybest set med at være samlet til en stor klump. Den enkelte stump javascript har ikke nogen speciel relation til det <element> som det befinder sig i.

Hvis du ønsker at javascript skal modificere et andet <element> end <body>, så skal du naturligvis vælge det <element>. I dit første eksempel brugte du jQuery, men nu er du skiftet til rå javascript, men i jQuery ville du skulle bruge noget i retning af:
  $('#header').css('background-color', '#'+end);
for at ændre baggrunds farven på det <element> som har id=header.

Jeg er ikke helt sikker på jeg forstår hvor du har et <canvas> element inde i <header>.
Avatar billede mads375 Juniormester
15. februar 2014 - 11:18 #4
Jeg tænker at hvis man vil have et banner hvor der kører en image slider inde fx. Dette skal kun foregå i banneret og ikke andre steder på siden. Derfor mente jeg inde i min <header> Jeg har lavet det i html5, og derfor skulle det jo være inde i <header></header> hvilket er banneret. Derfor tænker jeg at jeg skulle have det inde i min header, men er i tvivl om hvordan man laver det?
Avatar billede mads375 Juniormester
15. februar 2014 - 11:20 #5
mit <header id="header"> gik egentligt bare til et css
Avatar billede mads375 Juniormester
15. februar 2014 - 11:34 #6
Jeg har lige lavet en video af hvad jeg mener. Når man opdatere siden blinker den med nogle farver. Hvis man fx gerne vil have at det blinken kun skal køre inde i det grønne banner, og ikke hele siden. Det er egentligt det jeg mener.
Avatar billede mads375 Juniormester
15. februar 2014 - 14:28 #7
Jeg tillader mig altså at lukke denne tråd og acceptere mit eget svar. Det er normalt at man ikke ligger et svar før trådstarter spørger om et. I det du har lagt et svar forhindrer det at jeg får indputs fra alle andre her på siden der ser tråden, da folk tror spørgsmålet er blevet besvaret, men trådstarter mangler at acceptere svaret.
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