Wpis z mikrobloga

#css #webdev #frontend #html #javascript

Jak uzyskać zachowanie, że po najechaniu na czerwony prostokąt i kręceniu kółkiem mszy (scrollowaniu), przesuwa się treść w zielonej ramce?
Ale czerwony prostokąt ma stać w miejscu, tak jak przy position fixed/absolute - względem zielonej ramki.

Powiedzmy, że chcę zwyczajnie przewijać treść w zielonej ramce, ale czerwony prostokąt mi przeszkadza, blokuje mi przewijanie. Jednocześnie jest on mi potrzebny bo klikam w niego i obsługuję to kliknięcie z eventem mousedown, więc pointer-events: none raczej odpada.

Aktualnie jak najechać na czerwony prostokąt i kręcić kółkiem myszy, to nic się nie dzieje, nie przewija się. Jak na białe pole w zielonej ramce, to się normalnie przewija.

Tutaj żywy przykład:
https://4vlww.csb.app/
look997 - #css #webdev #frontend #html #javascript

Jak uzyskać zachowanie, że po n...

źródło: comment_1620967978UN6TfSwebU8hh0Ncy7ziLh.jpg

Pobierz
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • Doceń
@look997: z js zrobilbym tak ze dalbym pointer ev none na fix, a na content dalbym ten event na click i sprawdzil gdzie pozycja clicka jest wzgledem conttentu i czy lapie sie to w czerwony element
  • Odpowiedz
@magic96: @uszanowanko: @LaylaTichy: W sumie napiszę bezpośrednio:
ten czerwony prostokąt ma być scrollbarem, który się klika i go przesuwa i on ma przesuwać treść - taki custom scrollbar.
(w rzeczywistości mam gotowy własny custom scrollbar, prócz tego opisanego buga a we wpisie dodałem coś uproszczonego, żeby łatwiej to zaprezentować i naprawić)

To ma jeszcze dodatkowe rzeczy w sobie.
Gotowe customowe scrollbar-y z neta też mają ten
  • Odpowiedz
@LaylaTichy: No też o tym myślałem.
I jeszcze miałem pomysł, żeby scrollTop zielonej ramki się dynamicznie dodawał do top dla elementu .fix.
Ich jeszcze nie próbowałem.

Inne też miałem pomysły ale nie zadziałały.
  • Odpowiedz
@LaylaTichy: Z wheel i ponterElent wcześniej próbowałem i nie działa, bo w ogóle się nie aktywuje wheel dla .fix - chyba dlatego, że to element, który nie ma w sobie treści do przewijania. :|
  • Odpowiedz
@LaylaTichy: Napiszę jeszcze, że w Firefox 87 jak .fix ma border-radius większe niż zero, to działa tak jakbym chciał. xD
Ale w nowszej wersji Firefoksa już nie, i w Chromie wcale nie.

Chyba taki przypadkowy bug związany z Firefox 87. :D
  • Odpowiedz