[JS] Coordinaten van een image

Pagina: 1
Acties:

  • Urk
  • Registratie: Maart 2000
  • Laatst online: 20-05 01:33
Ik wil graag het Y-coordinaat van een image opvragen maar
document.images['ImageName'].offsetTop; werkt niet.
Deze had ik gevonden in topic: [rml][ JS] coordinaten van een image[/rml]

Heb ook al aardig wat pagina's afgegoogled... maar helaas nog geen resultaat...

  • Urk
  • Registratie: Maart 2000
  • Laatst online: 20-05 01:33
Het vreemde is dat hier bijna niks over te vinden is op Google.
Dit kan toch wel of ben ik gek??

Anyone?? _/-\o_ _/-\o_

  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

code:
1
2
3
[img]"utfs.gif"[/img]

alert(document.images["bla"].offsetTop);


Dat moet prima werken hoor, heb je iets online staan?

[ Voor 27% gewijzigd door André op 06-08-2004 14:12 ]


  • Urk
  • Registratie: Maart 2000
  • Laatst online: 20-05 01:33
André schreef op 06 augustus 2004 @ 14:11:
code:
1
2
3
[img]"utfs.gif"[/img]

alert(document.images["bla"].offsetTop);


Dat moet prima werken hoor, heb je iets online staan?
Bedankt voor je reactie en nee, heb het helaas niet online staan.
Dit is een stukje van de code (het word gebruikt in een pagina met een WYSIWYG editor):

HTML:
1
2
3
4
5
    <tr height="21">
     <td colspan="2"><b>Subject</b></td>
     <td align="right" valign="top"><a class="handcursor">[img]"../images/advancedoptions_off.gif"[/img]</a></td> <!-- 538 //-->
    </tr>
    <script>alert(document.images["advancedoptionsimage_3"].offsetTop);</script>


Het script geeft als output waarde gewoon 0 Heel vreemd!! :? :?

  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

Als ik jouw code zo in IE overneem dan krijg ik keurig 15 terug.

  • Urk
  • Registratie: Maart 2000
  • Laatst online: 20-05 01:33
André schreef op 06 augustus 2004 @ 14:20:
Als ik jouw code zo in IE overneem dan krijg ik keurig 15 terug.
Hmmm.....dat is balen dan ligt het aan de rest van het script.
Er word namelijk vrij veel scripts gebruikt, bij het minste of geringste aanpassing aan die <script> code werkt de hele pagina niet meer...

Toch vreemd want er zijn ook aardig wat scripts die ik er bijgebouwd heb in JS & ASP en die werken allemaal prima

  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

Heb je misschien meerdere images met dezelfde naam? Geef anders de image een id en gebruik document.getElementById ipv document.images

  • Urk
  • Registratie: Maart 2000
  • Laatst online: 20-05 01:33
André schreef op 06 augustus 2004 @ 14:41:
Heb je misschien meerdere images met dezelfde naam? Geef anders de image een id en gebruik document.getElementById ipv document.images
Had ik volgens mij al geprobeerd, nogmaals gedaan maar werkt ook niet.
Heel raar. Ligt gewoon aan de rest van de code denk ik...
Ik gebruik WinXP met IE6, moet werken dus lijkt me

Verwijderd

Heb je de image genest staan, anders moet je de offsetTop tot het laatste element wat een parentElement heeft optellen.

  • Urk
  • Registratie: Maart 2000
  • Laatst online: 20-05 01:33
Verwijderd schreef op 06 augustus 2004 @ 15:11:
Heb je de image genest staan, anders moet je de offsetTop tot het laatste element wat een parentElement heeft optellen.
Hoe bedoel je dat precies? Kan je anders een voorbeeld geven? :?

  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

code:
1
2
3
4
5
6
7
8
9
10
11
<div>
  <table>
    <tr>
      <td>
        <p>
          Test
        </p>
      </td>
    </tr>
  </table>
</div>

Hij bedoelt dat je in bovenstaand voorbeeld dus van alle parentelements gaat kijken wat hun offsetTop is en die optelt.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 13:54

crisp

Devver

Pixelated

HTML:
1
2
3
4
5
6
7
<div id="bla1" style="position:absolute;top:100px">
  <img id="bla2" src="bla.gif" alt="" />
</div>
<input type="button" value="offsetTop div"
  onclick="alert(document.getElementById('bla1').offsetTop)" />
<input type="button" value="offsetTop img"
  onclick="alert(document.getElementById('bla2').offsetTop)" />


je zou zoiets kunnen doen:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
function getOffsetTop(el) {

  var offsetTop = el.offsetTop;
  while (el.tagName.toLowerCase() != 'body') {
    el = el.parentNode;
    offsetTop += el.offsetTop;
  }

  return offsetTop;

}

[ Voor 27% gewijzigd door crisp op 06-08-2004 16:13 ]

Intentionally left blank


Verwijderd

Zoiets zou ook kunne:
code:
1
2
3
4
5
6
7
function getOffsetTop(el) {
  var offsetTop = 0;
  while (el=el.offsetParent) {
    offsetTop += el.offsetTop;
  }
  return offsetTop;
}

Hij doet eigenlijk hetzelfde, dus het is een beetje een nutteloze post, maar ik wou alleen maar zeggen, er bestaat ook zoiets als een offsetParent.
Pagina: 1