2017-01-03 8 views
0

Ich habe ein Problem mit meiner festen Kopfzeile.Position fixiert bleibt nicht behoben

Auf meiner Homepage funktioniert die feste Kopfzeile. Dies wurde auf verschiedenen Computern und mobilen Geräten ordnungsgemäß getestet. Die gleiche feste Kopfzeile findet sich jedoch auf keiner anderen Seite, etwa einer Produktseite oder einem Blog-Post.

Was es tut, ist folgendes: 1) Es ignoriert die feste Positionierung und bleibt nicht an der Spitze. 2) Es wird falsche Breite (Breite: 1010px)

Dies ist mein jQuery-Skript zum Erkennen, ob ein Benutzer gescrollt hat, um die Klasse sticky der Kopfzeile hinzuzufügen.

$(window).scroll(function() { 
    if ($(this).scrollTop() > 1){ 
     $("body.new-template #header").addClass("sticky"); 
    } else { 
     $("body.new-template #header").removeClass("sticky"); 
    }; 
}); 

Und das ist mein CSS.

body.new-template #header { 
position: relative; top: 0; left: 0; 
} 
body.new-template #header.sticky { 
    position: fixed; z-index: 100; width: 100%; 
    background-color: white; top: 0; left: 0; 
    -webkit-box-shadow: 0px 3px 10px #ccc; 
    -moz-box-shadow: 0px 3px 10px #ccc; 
    box-shadow: 0px 3px 10px #ccc; 
} 

Ich bin nicht sicher, ob ich den Link von der Website veröffentlichen soll, aber es ist der einzige Weg the live version zu sehen. Um den beschriebenen Fehler zu sehen, gehen Sie auf eine beliebige Seite im Menü und schalten Sie die Gerätesymbolleiste von Chrome Console ein. Jedes Gerät wird es tun.

Was mache ich falsch?

+0

Es scheint, dass Sie Ihr Markup auf den Produkt-/Detailseiten durcheinander gebracht haben. Das Problem mit dem Header, der nicht sticky ist, konnte von einem fehlenden Tag verursacht werden. Versuchen Sie einen Validator oder gehen Sie Ihre Vorlage durch und stellen Sie sicher, dass sie gültig ist. – chillwalker

+0

Sicher genug, ich fand ein Anker-Tag, das nicht richtig schließen, aber das ist nicht das Problem. – user2052104

+0

Ich habe gerade auch bemerkt, dass meine Scroll-to-Top-Taste (die auch behoben ist) nicht richtig funktioniert für jede Seite außer der Homepage – user2052104

Antwort

-1

Geben Sie bitte Ihren Code $(window).scroll(function() {... in die $(document).ready(function() { ein.

0

Ihr Problem ist zweifach. Ein

Part - Eine Klasse nicht auf den Körper Tag angewandt
Der Header von dieser bestimmten Auswahl in Ihrem CSS festgelegt wird:

body.new-template #header {} 

Dies ist auf der Homepage zufrieden wie die body a hat Klasse new-template, und damit der Header wird behoben.

Allerdings hat die body auf all Ihren anderen Seiten diese Klasse nicht und daher wird #header nicht behoben.

Sie können body.new-template aus dem Selektor in Ihrem CSS entfernen oder die new-template Klasse zum body Tag jeder Seite hinzufügen, auf der die Kopfzeile fixiert werden soll.

Teil - Ein Fehler in Chrom mit + Position festen Transformations
Es gibt dann auch einen Fehler in Chrome position: fixed und Transformationen beziehen. https://bugs.chromium.org/p/chromium/issues/detail?id=20574

Sie haben eine hier zu verwandeln, die bricht Ihre position: fixed:

body.new-template #page { 
    position: relative; 
    -webkit-transform: translate3d(0,0,0); 
    -ms-transform: translate3d(0,0,0); 
    -o-transform: translate3d(0,0,0); 
    -moz-transform: translate3d(0,0,0); 
    transform: translate3d(0,0,0); 
} 

Damit entfernen und fügen Sie die .new-template Klasse Ihr Problem zu lösen.

+0

Alle Produkte haben diese spezifische Klasse auf so das ist nicht das Problem, entweder – user2052104

+0

Auf der Live-Site, die Sie verlinkt, keine der Seiten, außer der Homepage, haben die Klasse erwähnt. Vielleicht haben Sie sie in einer lokalen Version hinzugefügt, die Sie gerade untersuchen? – Jamie

+0

Navigieren Sie zu diesem Link: http://www.etelestia.com/en/course-pricelist.aspx | Dann prüfen Sie den HTML-Code mit Ihren Browser-Entwicklungstools. Fügen Sie dem Body die new-template-Klasse hinzu und löschen Sie die Transformationsformate auf #page. Sie sehen dann, dass es korrekt funktioniert. Dieses Bild zeigt, wie das Update funktioniert: https://i.imgur.com/eeDucda.png – Jamie

Verwandte Themen