2013-07-06 24 views
10

Pracuję nad małą witryną aplikacji na Androida, którą wypuszczam, ale mam mały problem, na który nie mogę znaleźć odpowiedzi.Nawigacja Znikająca w przeglądarce Chrome po przewinięciu i kliknięciu

W przeglądarce Firefox wszystko działa poprawnie, ale po przewinięciu i kliknięciu linku nawigacyjnego (po prostu za pomocą identyfikatora przesuwa się w dół strony), ale w przeglądarce Chrome nawigacja znika, dopóki nie przewiniesz więcej.

Witryna jest gotowy na www.ioudebtcalculator.com

Są to jedyne style Mam stosowane:

#navBar { 
    background-color:#000; 
    position:fixed; 
    width:100%; 
    font-family:sans-serif; 
    font-weight:bold; 
    font-size:13pt; 
    height:70px; 
} 

Edit: I od tego czasu usunięto pozycję ustaloną z NavBar na stronie internetowej, dzięki czemu nie będzie dłużej widzisz tam problem. Problem nie został jeszcze rozwiązany.

Możesz łatwo dodać pozycję ustaloną do elementu navBar za pomocą Narzędzi dla programistów lub dowolnego innego równoważnego narzędzia, aby zobaczyć problem.

+1

W twoim wyciągu widoczności występuje literówka. Powinna to być "skala początkowa", a nie "skala początkowa".Nie wiem, czy jest to powiązane, ale powinieneś to poprawić i sprawdzić. – redGREENblue

+0

Dzięki temu zaktualizowałem poprawną pisownię, ale problem wydaje się być kontynuowany. –

+0

zobacz odpowiedź Mateusza R poniżej. Ustawienie 'top: 0;' powinno to zrobić. Lub spróbuj 'position: absolute; top: 0; 'jeśli wystąpi błąd –

Odpowiedz

14

to działa na mnie podczas dodawania tego do NavBar css

-webkit-transform: translateZ(0); 

czyni go

#navBar { 
    background-color: #000; 
    width: 100%; 
    position: fixed; 
    font-family: sans-serif; 
    font-weight: bold; 
    font-size: 14pt; 
    height: 70px; 
    -webkit-transform: translateZ(0); 
    z-index: 1; 
    box-shadow: 0 2.5px 20px #000; 
} 
+0

Tak to się stało. Wyjąłem pozycję: naprawiono na razie z powodu urządzeń mobilnych, ale rozwiązało to dla Chrome. –

+1

Czy możesz oznaczyć to jako rozwiązane? –

+1

Drogi bóg. Uderzyłem głową o błąd, w którym w pionowym przewijaniu chromowanym element z przerwami pojawiał się/znikał na całej stronie. Zirytowałem się z tego powodu. DZIĘKUJEMY. – dudewad

2

Nie mam pojęcia, co jest nie tak. Ale zamierzam wyrzucić moje najlepsze przypuszczenia, ponieważ nikt jeszcze nie odpowiedział.

Poniższe wygląda jak dobrym kandydatem do screwy zachowań:

function switchTabs(e) { 
    $('a#currentTab').removeAttr('id'); 
    $(e).children('a').attr('id','currentTab'); 
} 

id jest nie własność atrybutem oraz dodawanie i usuwanie identyfikatorów wydaje się to naprawdę zły pomysł, ponieważ jest to w jaki sposób elementy DOM są wyjątkowo zidentyfikowane. To coś, z czym nie chciałbym się pogodzić. Poza tym łatwo jest odtworzyć pożądaną funkcjonalność w klasach:

function switchTabs(e) { 
    $('a.currentTab').removeClass('currentTab'); 
    $(e).children('a').addClass('currentTab'); 
} 

Może mam szczęście?

+0

Niestety to mi nie pomaga. Wprowadziłem te zmiany i przekazałem je serwerowi, jeśli chciałbyś dalej próbować pomóc. Dzieki za probe. –

4

To może być benefitial użyć zwój:

ten będzie bardziej przyjazny dla użytkownika, ponieważ jest gracefull i problem (I wyobrazić) polega na tym, że Chrome nie rejestruje zmianę pozycji ze względu na prąd metoda.

$("#button").click(function() { 
    $('html, body').animate({ 
     scrollTop: $("#elementtoScrollToID").offset().top 
    }, 2000); 
}); 
+0

Muszę jeszcze tego spróbować, ponieważ dodałem dodatkowy JavaScript, ale to może być jedyne rozwiązanie. Jeśli to jest rozwiązanie, to Chrome ma problem z pozycją ustaloną ... –

+0

Myślę, że ma problem ze zmianą pozycji za pomocą skryptów. – SMillerNL

+1

Seconding @SMillerNL tutaj. Opera Mobile miała podobny problem z 'position: fixed;'. Ma to związek ze sposobem, w jaki przerysowuje stronę po przewinięciu. Możesz nawet zmusić go do przerysowania przycisków z określonymi stanami ': hover' poprzez przesuwanie nad nimi po przewinięciu. Zmuszenie silnika do przerysowania za pomocą 'animate()' jQuery może być najlepszym rozwiązaniem. Zawsze możesz skrócić animację, aby zachowywać się podobnie do bieżącego stanu. – joequincy

0

Powinieneś dodać top: 0 do swojego elementu. To dostosuje ją do górnej części strony, bez względu na wszystko. Może być konieczne dodanie dopełnienia do górnej części opakowania zawartości, tak aby nigdy nie było objęte nawigacją.

+0

Dzięki za próby, ale to nie robi. –

3

Proszę wymienić css za pomocą poniższego kodu

nav { 
     background: none repeat scroll 0 0 #000000; 
     display: block; 
     position: absolute; 
     margin-left: 115px !important; 
     float: left; 
     height: 70px; 
     margin-left: 10%; 
     width: 40%; 
    } 
0

Właśnie dodałem dwie rzeczy zarówno w przeglądarce Chrome, jak i Firefox i działało dobrze. Kliknąłem link i nieco przewinąłem, nav pozostaje tak, jak się spodziewano.

For #navBar 
position: fixed; 

For #wrapper 
padding-top: 70px; 
Powiązane problemy