jak zablokować javascriptowi możliwość scrollowania strony - firefox

0

Czy istnieje możliwość dezaktywowania stronom www możliwości scrollowania okna z pomocą javascript? Czyli wyłączyłć możliwość odpalenia window.scrollTo, chyba, że ktoś ma inny pomysł.

Można oczywiście zablokować cały JS, ale to by kompletnie zabiło strony budowane dynamicznie.

  • jakaś wtyczka?
  • opcja w about:config?
  • kod js do odpalenia np. skryptozakładką?

Wiem, że mogę sobie zanalizować skrypty na danej stronie i dezaktywować odpowiednie akcje, ale to upierdliwe. Może da się coś z automatu.

0

Pytam żeby się upewnić - nie chcesz w ogóle zablokować możliwości przewijania strony, ale chcesz, aby jedyny sposób przewijania to było "po Bożemu" - czyli strzałki/scroll/pasek, a nie z poziomu skryptu JS. Zgadza się?

Tak z ciekawości - po co Ci taka funkcjonalność? Co kombinujesz?

1

@czysteskarpety: chyba Smoczycy nie do końca o to chodziło. Odnośnie pierwszego linku - "Disables scrolling from scrollbars, mousewheels, touchmoves and keypresses". Z tego co zrozumiałem (oraz o co dopytałem w poprzednim poście) to chodzi jedynie o blokadę JS, a nie całkowitego przewijania przy użyciu wszystkich możliwych sposobów.

Przykład na jsfiddle.net ponownie robi to samo co w/w, czyli także blokuje mi scrolla w myszce. Trzeci link także blokuje globalnie :(

0
cerrato napisał(a):

Pytam żeby się upewnić - nie chcesz w ogóle zablokować możliwości przewijania strony, ale chcesz, aby jedyny sposób przewijania to było "po Bożemu" - czyli strzałki/scroll/pasek, a nie z poziomu skryptu JS. Zgadza się?

Tak.

Tak z ciekawości - po co Ci taka funkcjonalność? Co kombinujesz?

W sumie (w tym wypadku) problem okazał się polegać na manipulowaniu rozmiarem elementów na stronie a nie na suwaniu stroną jako taką, ale niektórym stronom, wydaje się, że wiedzą lepiej ode mnie, jak strona ma się przesuwać. Np. nie pozwalają na przewijanie jak się chce, tylko, próbują wymuszać skakanie do kolejnego bloku strony. No i nie lubię, jak mi strona tak cuduje.

1

Czyli to było pytanie zadane przez użytkownika, nie developera - tak? :P

3

Okazuje się, że rzecz jest zupełnie banalnie wykonalna :)

window.scrollTo = function () {console.log('i zablokowane :>');}

I teraz wystarczy to na stronie wpisać z konsoli, odpalić ze skryptozakładki, ew. odpalać na danej stronie automatycznie za pomocą np. Greasemonkey.

0

ciekawe czy da się to zrobić dla każdej strony?

Mnie też wkurzają scrolle, bo w większości przypadków są:

  • są słabiutką imitacją makowego scrolla - efekt jest taki, że na Windowsie może to "działa", bo na Windowsie widać nie ma natywnego scrolla - ale na Maku się nakładają 2 scrolle - prawdziwy natywny i ten chałupniczy zrobiony na jQuery czy innym gównie - efekt jest tragiczny. Nie da się normalnie przewijać.
  • albo też są tanim efektem, który odpala się po kliknięciu linka ("kliknij, a zmarnujemy ci ćwierć - pół sekundy na czekanie, aż się przewinie strona do danej kotwicy").
3
LukeJL napisał(a):

ciekawe czy da się to zrobić dla każdej strony?

Dla pewności warto też zablokować:
window.scrollBy

Mnie też wkurzają scrolle (...)

  • albo też są tanim efektem, który odpala się po kliknięciu linka ("kliknij, a zmarnujemy ci ćwierć - pół sekundy na czekanie, aż się przewinie strona do danej kotwicy").

Z tymi animacjami to jest w ogóle jakaś paranoja. Albo większość szkodników woli oglądać animacje zamiast właściwej treści, albo większości developerów tak się wydaje :/

Osobiście mam:

  • wyłączony smooth scroll w przeglądarce, bo co prawda nie mam nic przeciw gładkiemu przewijaniu, ale uboczny efekt jest taki, że PageDown odpala wtedy kretyńską animację przewijania strony, zamiast po prostu pokazać mi kolejną stronę tekstu,
  • w about:config wyłączone wszelkie możliwe animacje przeglądarki,
  • w lokalnych CSS nadpisujących arkusze ze stron www, mam transition-delay, animation-delay, animation-duration ustawione na 0s, a transition-duration na 0.001s (inaczej jest problem z logowaniem w Google), bo mi się po prostu niedobrze robi, jak strona zamiast wyświetlić gotową treść, robi jakiś durny kalejdoskop,
  • w lokalnych stylach staram się też blokować animacje obrazków robione na hover,
  • no i blokuję paralaksę w obrazkach (z tych samych powodów).

ps. Ma ktoś może podobnie?

0

Ma ktoś może podobnie?

Ja mam zupełnie przeciwnie. Całkowicie mnie to wali, nie uważam, żeby czekanie sekundę aż coś się przewinie czy rozwinie miało jakikolwiek znaczenie :p

1

wyłączony smooth scroll w przeglądarce, bo co prawda nie mam nic przeciw gładkiemu przewijaniu, ale uboczny efekt jest taki, że PageDown odpala wtedy kretyńską animację przewijania strony, zamiast po prostu pokazać mi kolejną stronę tekstu,

To mi akurat nie przeszkadza. Natywny scroll działa u mnie wystarczająco szybko, że staje się to częścią experience.

Ja mam takie wrażenie, że większość stron, na których ludzie próbują się bawić a to ze scrollem, a to z przejściami/animacjami CSS i robią to w sposób chałupniczy, ma źle ustawione opóźnienia i ogólnie są źle stweakowane (nie wiem, jak "powinno być", sam to robię zawsze na czuja, sprawdzam, czy wygląda dobrze. Chociaż pewnie są jakieś reguły. Wytyczne z Material Design choćby definiują, jaka ma być liczba milisekund przy jakiej animacji czy jakiego rodzaju easing (choć Material Design to tylko coś, co Google lansuje, i co czasami mnie wkurza, chociaż jest tam parę fajnych rzeczy).

Anyway, większość stron z chałupniczymi scrollami czy animacjami sprawia wrażenie, jakby te animacje były dodane na siłę, i za bardzo się je "czuje", za bardzo "dostrzega". Coś jak wchodzę na stronę i "aha, kliknąłem linka i teraz się scrolluje. O, już się przescrollowało". Tzn. czasami nawet dostrzegalna animacja może być fajna, tylko jak ktoś ją umie zrobić, zarówno pod kątem dizajnu, jak i techniczne (czy się nie zacinają FPSy, czy nie koliduje z natywnym działaniem itp.).

w about:config wyłączone wszelkie możliwe animacje przeglądarki,

Zastanawiam się, czy przy takich ustawieniach odpalają się eventy w JS dotyczące animacji (np. czy transitionend się odpali.

Czasem polegam na tych eventach, ale nie wiem czy dobrze, skoro ktoś może mieć wyłączone animacje (ale to trzeba będzie sprawdzić kiedyś).

1 użytkowników online, w tym zalogowanych: 0, gości: 1