Stworzyłem wtyczkę, która została przycięta do gołych kości wtyczki (tj. Brak funkcjonalności, tylko struktury) w celu debugowania tego problemu i nadal istnieje. Zajmuje się zmienianiem rozmiaru elementów div i bazuje na szerokości dokumentu.Szerokość okna JQuery jest niepoprawna w Chrome
Problem polega na tym, że szerokość zgłaszanych dokumentów jest zmniejszona o 17 pikseli względem rzeczywistej szerokości, a tym samym nie powoduje poprawnego rozmiaru elementów div.
Włożyłem w alertach, aby dowiedzieć się, gdzie pojawia się problem: before „gotowy” funkcja: 1780px (prawidłowa szerokość) Wewnątrz „gotowy” Funkcja: 1763px Wewnątrz wtyczki: 1763px (wszystkie wartości zwracanych "document.width" i "$ (document) .width()" z tymi samymi wynikami)
Dzieje się to tylko w Chrome i nadal działa, nawet jeśli wtyczka została skutecznie zredukowana.
Jakieś przemyślenia na temat tego, dlaczego tak się dzieje?
Może być wielkość przewijania jest odejmowana. Jakiś kod pomoże w zlokalizowaniu problemu. – Magnar
Zawęziłem go do bardziej konkretnego miejsca. Jeśli wyświetlany jest alert przed funkcją gotową, po kliknięciu przycisku OK renderowanie elementów Div jest poprawne. Jeśli ten alert zostanie usunięty, powróci do wartości 17px mniejszej od rzeczywistej szerokości. Czy są jakieś inne zdarzenia lub coś innego, co się dzieje po wyświetleniu alertu? – Stuart
Właśnie usunąłem cały tekst zastępczy, który wymuszał przewijanie pasków, a odstęp został zredukowany do przestrzeni o rozmiarze paska przewijania. Myślę, że masz rację, że szerokość paska przewijania została odjęta. Jakieś pomysły na obejście tego problemu? – Stuart