Cześć, jak rozwiązać problem:
mam diva głównego szerokość 100%, wysokość 100vh
w głównym divie są dwa divy - lewy i prawy - mają po 50% szerokości i 100vh wysokości i float (left, right) z tym że lewy ma overflow-y: auto a prawy scroll. Na przeglądarkach komputerów (firefox, chrome, ie, opera) wygląda tak jak zamierzony efekt a na telefonie prawy div po skrolowaniu w dół - jego częśc (spód) jest zasłonięta przez pasem nawigacyjny telefonu.
https://css-tricks.com/the-trick-to-viewport-units-on-mobile/
dziękuję trueblue za artykuł i szczególnie to zdanie mi rozjaśniło umysł: "If you opened your browser and started to load a website, 1vh was equal to 1% of your screen height, minus the browser interface. But! If you start scrolling, it’s a different story."
dlatego napisałem taką funkcję
function vh_validation() { if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { var window_inner_h = $(window).innerHeight(); $("#right").css("height", window_inner_h + "px"); } else { $("#right").css("height", "100vh"); } } vh_validation() $(window).on('load scroll resize orientationchange', function(e) { vh_validation() });
Fajnie, ale w artykule jest dużo prościej:
Tak stylujesz element:
.my-element { height: 100vh; height: calc(var(--vh, 1vh) * 100); }
let vh = window.innerHeight * 0.01; document.documentElement.style.setProperty('--vh', `${vh}px`);
nie chciałem bezmyślnie kopiować tergo - do dziś nie wiedziałem że da się łączyć css z js w ten sposób (no ale zostane przy kodzie z artykułu). to teraz wszystko śmiga - dziękuję
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)