2012-11-17 12 views
6

Szukałem od jakiegoś czasu i nie mogę znaleźć żadnej poprawki dla tego problemu. Kiedy pole wejściowe zyskuje ostrość w mobilnym safari (nie sprawdziliśmy innych przeglądarek), stały element przeskoczy z powodu safari umieszczającego ten element w widoku (bliżej środka). Błąd występuje tylko wtedy, gdy użytkownik przewinął, jeśli użytkownik nadal znajduje się u góry strony, nic się nie dzieje.Naprawiono nagłówki z polami tekstowymi na stronach mobilnych safari

Przed & Po screenach

before focus

after focus

Czy ktoś ma pojęcia jak to naprawić? Jedyne rozwiązanie, z jakim się zetknąłem, to przewinięcie do góry po ustawieniu ostrości, a następnie rozmycie wróci do pozycji ... wydaje się to bardzo niechlujnym rozwiązaniem.

Oto przykładowa strona na zrzutach ekranu, bardzo prosta, nic poza normą.

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8" /> 
     <meta name="viewport" content="width=device-width, scale=1"/> 
    <title>MySite</title> 
    <style> 
    body{ 
     height:100%; 
     width:100%; 
     padding:0; 
     margin:0; 
     font-size:16px; 
     font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; 
    } 
    header, footer { 
     background-color:#333; 
     padding:10px; 
     color:#FFF; 
     width:100%; 
    } 
    header { 
     position:fixed; 
     top:0; 
     left:0; 

    } 
    input[type=search] { 
     position:relative; 
     margin-left:20px; 
     width:160px; 
     font-size:16px; 
     height:26px; 
    } 
    section{ 
     padding:10px; 
    } 
    </style> 
</head> 
<body> 
<header> 
<b>MySite</b> 
<input type='search' placeholder='Search'> 
</header> 
<section> 
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
</sction> 
<footer> 
&copy; MySite <?php echo date('Y') ?> 
</footer> 
</body> 
</html> 
+0

http://stackoverflow.com/questions/7970389/ios-5-fixed-positioning-and-virtual-keyboard – Petah

+0

To wszystko są dość niechlujstwa, a najlepsze nie działa wcale w moim symulatorze iOS . – Ian

Odpowiedz

1

Mam ten sam problem. Ale zdałem sobie sprawę, że stała pozycja jest po prostu opóźniona i nie zepsuta (przynajmniej dla mnie). Przewiń i odczekaj 5-10 sekund i sprawdź, czy pasek wyszukiwania dostosowuje się z powrotem do górnej części ekranu. Uważam, że to nie błąd, ale opóźniona reakcja, gdy klawiatura jest otwarta.