Avatar billede jobless Nybegynder
17. august 2009 - 17:14 Der er 10 kommentarer og
1 løsning

Sync af divs

Hej,

Jeg fifler med at bruge denne: http://webfx.eae.net/dhtml/syncscroll/syncscroll.html

og det virker som ønsket i IE, men ikke i andre af de browsere jeg har prøvet.

Tror det går galt i syncscroll.js i denne linie: toElement.attachEvent("onscroll", fromElement._syncScroll);

Er der nogen som kan tilrette koden, så den bliver kompatibel med FF og Chrome ?
Avatar billede thesurfer Nybegynder
17. august 2009 - 18:03 #1
Det er sikkert fordi Internet Explorer bruger "attachEvent" og de andre browsere bruger "addEventListener"..


Eksempel:


if(window.addEventListener){ // Mozilla, Netscape, Firefox
    toElement.addEventListener("onscroll", fromElement._syncScroll);
} else { // IE
    toElement.attachEvent("onscroll", fromElement._syncScroll);
}
Avatar billede thesurfer Nybegynder
17. august 2009 - 18:04 #2
Svar.
Avatar billede olebole Juniormester
18. august 2009 - 00:58 #3
<ole>

Ikke 'on' i addEventListener - men til gengæld mangler tredie argument (formodentlig false):
    toElement.addEventListener("scroll", fromElement._syncScroll, false);

/mvh
</bole>
Avatar billede jobless Nybegynder
18. august 2009 - 07:28 #4
Godt gået !

Med thesurfer's løsning tilrettet med olebole's rettelser, fungerer det som ønsket.

olebole, vil du lægge et svar så jeg kan dele points ?


MVH

Kim
Avatar billede olebole Juniormester
18. august 2009 - 14:02 #5
Ellers tak. 'Badedyret' havde sikkert selv rettet småfejlene, hvis du havde nævnt, at det ikke virkede - så giv dem til thesurfer  ;o)
Avatar billede jobless Nybegynder
18. august 2009 - 16:46 #6
Bare ok, men tak alligevel ;=)
Avatar billede olebole Juniormester
18. august 2009 - 22:17 #7
Selvtak  ;o)
Avatar billede thesurfer Nybegynder
19. august 2009 - 19:30 #8
Hehehe.. 'Badedyret'..  den var ny.. havde jeg ikke set før.. :-)
Avatar billede olebole Juniormester
20. august 2009 - 09:07 #9
Kært barn har mange navne  ;o)
Avatar billede jobless Nybegynder
29. februar 2012 - 12:13 #10
Hej igen.

Som man kan se af ovenstående, fik jeg løst opgaven.

Nu er der imidlertid sket det, at nogle brugere anvender android tablet, og i dennes browser fungerer scriptet ikke.

Scriptet ser således ud, er der nogen som kan gennemskue hvad der er galt?

// This is a function that returns a function that is used
// in the event listener
function getOnScrollFunction(oElement) {
    return function () {
        if (oElement._scrollSyncDirection == "horizontal" || oElement._scrollSyncDirection == "both")
            oElement.scrollLeft = event.srcElement.scrollLeft;
        if (oElement._scrollSyncDirection == "vertical" || oElement._scrollSyncDirection == "both")
            oElement.scrollTop = event.srcElement.scrollTop;
    };

}
// This function adds scroll syncronization for the fromElement to the toElement
// this means that the fromElement will be updated when the toElement is scrolled
function addScrollSynchronization(fromElement, toElement, direction) {
    removeScrollSynchronization(fromElement);
   
    fromElement._syncScroll = getOnScrollFunction(fromElement);
    fromElement._scrollSyncDirection = direction;
    fromElement._syncTo = toElement;
    if(window.addEventListener)
    {
        // Mozilla, Netscape, Firefox
        toElement.addEventListener("scroll", fromElement._syncScroll, false);
    } else {
        // IE
        toElement.attachEvent("onscroll", fromElement._syncScroll);
    }
}

// removes the scroll synchronization for an element
function removeScrollSynchronization(fromElement) {
    if (fromElement._syncTo != null)
        fromElement._syncTo.detachEvent("onscroll", fromElement._syncScroll);

    fromElement._syncTo = null;;
    fromElement._syncScroll = null;
    fromElement._scrollSyncDirection = null;
}
Avatar billede olebole Juniormester
29. februar 2012 - 17:24 #11
Du vil få vanskeligt ved at få scriptet til at fungere i browsere, baseret på WebKit. Kik f.eks. på denne tråd, som omhandler et problem med samme oprindelse
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