Avatar billede lakana Nybegynder
27. august 2006 - 19:27 Der er 7 kommentarer og
1 løsning

Javascript uden id

Jeg har denne kode som virker fint - men jeg vil gerne fjerne id'et fra mit <div>-tag. Hvordan skal koden så se ud?

<script type="text/javascript">
function myFunction(id) {
  document.getElementById(id).style.fontSize = "50px;";
}
</script>

<div id="test" onMouseOver="myFunction(this.id);">test</div>
Avatar billede farving Nybegynder
27. august 2006 - 19:33 #1
så er du nødt til at lave en document.getElementByTagName("div") og så kan du ikke bruge andre divs...

Men hvorfor vil du fjerne dit id?

Mvh Carsten
Avatar billede farving Nybegynder
27. august 2006 - 19:35 #2
ved ikke lige om du kan bruge name på div's, men ellers name="test" og så ind i en form fx <form name="test"> <div></div></form>

og så lave en test.test.style.fontSize = "50px;";

Mvh Carsten
Avatar billede lakana Nybegynder
27. august 2006 - 19:46 #3
Kan man ikke bruge 'event' eller 'this' eller sådan noget?
Jeg ønsker noget der ligner dette:

<script type="text/javascript">
function myFunction(id) {
  document.getElementById(id).style.fontSize = "50px;";
}
</script>

<div onMouseOver="myFunction(this);">test</div>
Avatar billede mcgoat Nybegynder
27. august 2006 - 20:11 #4
hvis du skal lave noget mouseover/mouseout. ville det så ikke være nemmere at bruge hover i css?
Avatar billede thesurfer Nybegynder
27. august 2006 - 20:46 #5
Hvis du bruger this, skal det se sådan ud:

<script type="text/javascript">
function myFunction(id) {
  id.style.fontSize = "50px;";
}
</script>

<div onMouseOver="myFunction(this);">test</div>

id i funktionen henviser til elementet, som er div'en..
Avatar billede lakana Nybegynder
27. august 2006 - 21:13 #6
tak for det thesurfer!


læg et svar.

hvis der er nogle der vil, så vil jeg sætte pris på at nogle gad sørge for at fontSize rullede op imod de 50, istedet for bare at skifte til de 50.

hvordan skal det se ud? jeg går udfra at det er ngoet med for().
Avatar billede thesurfer Nybegynder
27. august 2006 - 22:34 #7
Jeg har lavet et eksempel, med noget mere kode..

* Position: Jeg har brugt style + position:absolute til at placere tekst på bestemte koordinater

Hvis du ikke vil placere flere tekster, på flere positioner:
- slet: style="..."


* Koden reducerer tekst-størrelsen, fra 50 og til start-størrelsen, ved onMouseOut.

Hvis du ikke vil have den handling:
- slet: function sizeDown()
- slet: onMouseOut="obj=this;sizeDown();"

Koden:

<!-- HUSK AT INDSÆTTE DOCTYPE! -->
<html>
<head>
<title>INDSÆT TITLEN HER</title>
<style type="text/css">
html,body
{
height:100%; /* sæt højden til 100% */
/* fjern "luften" rundt om elementerne: */
margin:0px;
padding:0px;
}

body
{
font-size:14px; /* font-størrelsen sættes i CSS */
}
</style>

<script type="text/javascript">
start_stoerrelse = 14; // skal være den samme som font-size i CSS
slut_stoerrelse = 50; // slut-størrelsen på fonten
s = 0; // tæller
obj = null; // objekt-pladsholder
old_obj = null;


function sizeUp()
{
    /* find ud af hvor stor fonten er nu */
    t = "" + obj.style.fontSize + start_stoerrelse + "px";
    t = t.substring(0, t.indexOf("px"));

    s = parseInt(t); // konverter strengen til et tal, så vi kan regne med værdien
    if (s < slut_stoerrelse) // check om font-størrelsen er maximum = slut
    {
        // det er den ikke
        s++; // sæt størrelsen op med 1
        obj.style.fontSize = s + "px"; // skift størrelsen på teksten
        setTimeout("sizeUp()", 10); // funktionen kalder sig selv hvert 10. ms
    }
}

function sizeDown()
{
    /* find ud af hvor stor fonten er nu */
    t = "" + obj.style.fontSize + slut_stoerrelse + "px";
    t = t.substring(0, t.indexOf("px"));

    s = parseInt(t); // konverter strengen til et tal, så vi kan regne med værdien
    if (s >= start_stoerrelse)  // check om font-størrelsen er minimum = start
    {
        // det er den ikke
        s--; // sæt størrelsen ned med 1
        obj.style.fontSize = s + "px"; // skift størrelsen på teksten
        setTimeout("sizeDown()", 10); // funktionen kalder sig selv hvert 10. milisekund
    }
}

document.onmouseout=sizeDown; // reducer størrelse, så snart musen hover på dokumentet
</script>
</head>

<body>

<div onMouseOver="obj=this;sizeUp();" onMouseOut="obj=this;sizeDown();" style="position:absolute;top:10px;left:10px">test</div>
<div onMouseOver="obj=this;sizeUp();" onMouseOut="obj=this;sizeDown();" style="position:absolute;top:200px;left:200px">endnu en test</div>

</body>
</html>

- Svar.
Avatar billede thesurfer Nybegynder
27. august 2006 - 22:35 #8
Linien "old_obj = null;" skal bare slettes, da den ikke bliver brugt.
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