Avatar billede thomaskramer Juniormester
03. oktober 2006 - 08:40 Der er 10 kommentarer og
1 løsning

Mouse-over på billeder - kan det rettes?

Hej

Jeg har følgende script :

-------------------------------------------------------------

            <script type="text/javascript">
function ShowBigImage(image){
    var BigImage = document.getElementById("BigImage");
    BigImage.innerHTML = "<img src='"+image+"'>";
}
function MoveBigImage(x, y){
    var BigImage = document.getElementById("BigImage");
    BigImage.style.display = "block";
   
    if(document.all){
  y=(tmenu=document.documentElement.scrollTop)?tmenu+y:document.body.scrollTop+y;
  x=(lmenu=document.documentElement.scrollLeft)?lmenu+x:document.body.scrollLeft+x;
}
   
    BigImage.style.left = (x+15) + "px";
    BigImage.style.top = (y+15) + "px";
}
function HideBigImage(){
    document.getElementById("BigImage").style.display = "none";
}
</script>

-------------------------------------------------------------

Kan man skrive det om så mouse-over billedet kommer over pointeren og til venstre istedet for det nuværende - som er under pointeren og til højre?
Avatar billede madssch Nybegynder
03. oktober 2006 - 14:08 #1
Det kan godt lade sig gøre.

BigImage.style.left = (event.clientX - BigImage.offsetWidth)
BigImage.style.top = (event.clientY - BigImage.offsetHeight)

Forklaring:

event.clientX giver dig cursorens X-værdi og event.clientY cursorens Y-værdi. Herefter fratrækker du henholdsvis billedets højde og bredde.

Jeg har ikke testet, men det er noget i den stil.
Avatar billede roenving Novice
16. oktober 2006 - 00:24 #2
Kom du videre ?-)
Avatar billede madssch Nybegynder
16. oktober 2006 - 09:17 #3
Jamen der er ikke mere i det:

<script type="text/javascript">

    function ShowBigImage (image) {
   
        var BigImage = document.getElementById("BigImage");
       
        BigImage.style.left = (event.clientX - BigImage.offsetWidth)
        BigImage.style.top = (event.clientY - BigImage.offsetHeight)
       
        BigImage.innerHTML = "<img src='"+image+"'>";
       
    }
   
    function MoveBigImage (x, y) {
       
        var BigImage = document.getElementById("BigImage");
        BigImage.style.display = "block";
   
        BigImage.style.left = (event.clientX - BigImage.offsetWidth)
        BigImage.style.top = (event.clientY - BigImage.offsetHeight)
       
    }
   
    function HideBigImage () {
        document.getElementById("BigImage").style.display = "none";
    }

</script>
Avatar billede madssch Nybegynder
26. oktober 2006 - 15:39 #4
Hvad så..?
Avatar billede olebole Juniormester
26. oktober 2006 - 15:42 #5
<ole>

- skal det virke efetr hensigten, er der lidt mere i det. Det er et must at inkludere en enhed, når man sætter værdier på top og left og denne er forskellig fra 0:

        BigImage.style.left = (event.clientX - BigImage.offsetWidth) + "px";
        BigImage.style.top = (event.clientY - BigImage.offsetHeight) + "px";

/mvh
</bole>
Avatar billede madssch Nybegynder
26. oktober 2006 - 15:48 #6
Det er muligvis "rigtig" kode, men funktionen virker stadig efter hensigten.
Avatar billede roenving Novice
27. oktober 2006 - 23:48 #7
I hvor mange forskellige browsere ?-)
Avatar billede thomaskramer Juniormester
17. januar 2008 - 14:00 #8
k
Avatar billede madssch Nybegynder
17. januar 2008 - 14:16 #9
Hvordan endte de points hos thomaskramer???
Avatar billede thomaskramer Juniormester
17. januar 2008 - 14:21 #10
fordi der ingen svar var givet - og jeg fik besked på at lukke spørgsmålene :-)
Avatar billede roenving Novice
19. januar 2008 - 15:10 #11
-- du kunne jo have bedt madssch om at lægge et svar, eller have svaret på de inputs, der var kommet ?-(
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