W Chrome na Maca można „przewinąć” stronę (z braku lepszego słowa), jak pokazano na poniższym zrzucie ekranu, aby zobaczyć „co się kryje”, podobnie jak na iPadzie lub iPhonie.
Zauważyłem, że niektóre strony mają tę funkcję wyłączoną, np. Gmail i strona „Nowa karta”.
Jak mogę wyłączyć „nadmierne przewijanie”? Czy są inne sposoby kontrolowania „nadmiernego przewijania”?
html
css
macos
google-chrome
Randomblue
źródło
źródło
Odpowiedzi:
Przyjęte rozwiązanie nie działało dla mnie. Jedyny sposób, w jaki sprawiłem, że działa, a jednocześnie mogę przewijać, to:
źródło
html
hacka stylistycznego, jak i dla mobilnych przeglądarek internetowych, które patrzą na pełne przepełnieniebody
nie zważając na ustawioną wysokośćhtml
.$(window).scrollTop
?window.scrollY
jest zawsze0
.W Chrome 63+, Firefox 59+ i Opera 50+ możesz to zrobić w CSS:
Spowoduje to wyłączenie efektu gumowania na iOS pokazanego na zrzucie ekranu pytania. Jednak wyłącza również przeciągnij, aby odświeżyć, efekty blasku i łańcuch przewijania.
Możesz jednak zdecydować się na zaimplementowanie własnego efektu lub funkcji po przewinięciu zbyt dużym. Jeśli na przykład chcesz rozmyć stronę i dodać ładną animację:
Wsparcie przeglądarki
Od tego momentu Chrome 63+, Firefox 59+ i Opera 50+ obsługują go. Edge publicznie ją wspierał, podczas gdy Safari jest nieznane. Śledź postępy tutaj i aktualną zgodność przeglądarek w dokumentacji MDN
Więcej informacji
overscroll-behavior
Specyfikacja CSSźródło
Jednym ze sposobów, aby temu zapobiec, jest użycie następującego kodu CSS:
W ten sposób treść nigdy nie jest przepełniona i nie „podskakuje” podczas przewijania na górze i na dole strony. Pojemnik doskonale przewinie swoją zawartość. Działa to w Safari i Chrome.
Edytować
Dlaczego dodatkowy
<div>
element jako opakowanie może być przydatny:rozwiązanie Floriana Feldhausa używa nieco mniej kodu i również działa dobrze. Może to jednak mieć trochę dziwactwa, jeśli chodzi o zawartość, która przekracza szerokość widocznego obszaru. W tym przypadku pasek przewijania na dole okna jest odsunięty od rzutni do połowy i jest trudny do rozpoznania / sięgnięcia. Można tego uniknąć używając
body { margin: 0; }
jeśli jest to odpowiednie. W sytuacji, gdy nie możesz dodać tego CSS, element wrapper jest przydatny, ponieważ pasek przewijania jest zawsze w pełni widoczny.Znajdź zrzut ekranu poniżej:
źródło
Możesz użyć tego kodu, aby usunąć
touchmove
predefiniowaną akcję:źródło
źródło
position: fixed
jest zbawicielem!Spróbuj w ten sposób
źródło
position: absolute
pracuje dla mnie. Testowałem naChrome 50.0.2661.75 (64-bit)
i OSX.źródło
Efekt odbijania nie może zostać wyłączony, z wyjątkiem tego, że wysokość strony jest równa
window.innerHeight
, możesz pozwolić na przewijanie elementów podrzędnych.źródło