Avatar billede Slettet bruger
20. marts 2011 - 14:00 Der er 3 kommentarer og
1 løsning

Irriterende "parent-scroll"

På min side har jeg "toolbox" - et window - som svæver ovenpå siden.
Når indholdet i toolboxen er større end boxen, kommer der en scrollbar - perfekt.

Men når man (med musens hjul) scroller inden i boxen, og når bunden (eller toppen) flyttes focus ud på den bagvedliggende side, og så scroller dén pludselig. Det er sikkert udemærket i de fleste tilfælde, men ikke i mit..

Er der en måde at forhindre dette på ?
Avatar billede olebole Juniormester
20. marts 2011 - 17:00 #1
<ole>

Det er helt almindelig adfærd - og sådan virker det felt, jeg sidder og skriver i, jo også  =)

Du kan cancel'e eventen i handleren:


function doMyWheelShit(e) {
    e = e ? e : window.event;

    // Din kode her

    e.cancelBubble = true;
    e.returnValue = false;
    if (e.stopPropagation) e.stopPropagation();
    if (e.preventDefault) e.preventDefault();
}



Så vil event'en ikke forplante sig op i DOM-hierakiet

/mvh
</bole>
Avatar billede Slettet bruger
21. marts 2011 - 09:42 #2
Dayum! Det er kompliceret, når Firefox går sine egne veje - har droppet onmousewheel-eventet :(

Og SÅ vigtigt er det trods alt ikke... (lyden af skrumpende ambitioner)

Det lader ikke til at bubble/propagation er vejen i dette tilfælde, men event.returnValue..

Jeg har fundet et site hvor det virker præcis som jeg vil(le) have det:
http://help.dottoro.com/ljqeknfl.php  (Nederst i venstre-menuen)

Bookmarked til nærmere undersøgelse, en laang vinteraften..
- Og et meget interessant site i det hele taget!

Takker for indsatsen - point hvis du vil have dem..?
- hvis ikke napper jeg dem bare selv (i morgen)
Avatar billede Slettet bruger
28. april 2011 - 08:13 #3
Update: Fandt en løsning som (mindst) virker i FF, Chrome og Opera : )

Det er jQuery m. Brandon Aaron's mousewheel-plugin: https://github.com/brandonaaron/jquery-mousewheel/raw/master/jquery.mousewheel.js
$(".ToolPage").bind('mousewheel', function(e, d)
    { 
    if (d > 0 && $(this).scrollTop() == 0) 
        e.preventDefault() 
    else 
        if (d < 0 &&  $(this).scrollTop() == $(this).get(0).scrollHeight - $(this).innerHeight()) 
                e.preventDefault() 
    })
Avatar billede Slettet bruger
28. april 2011 - 08:19 #4
Så, olebole, du havde (selvfølgelig) ret : )
- det var bare for langhåret (for mig) uden den nævnte plugin..
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