Ich mache eine Blog-Seite mit Bootstrap. Das rechte Drittel der Seite ist eine Spalte mit einer Kategorieliste und Suchleiste, die beim Scrollen von 300px vom oberen Rand der Seite fixiert wird. Dies scheint gut zu funktionieren, aber das Problem ist, dass beim ersten Laden der Seite das Seitenelement ohne ersichtlichen Grund an den Anfang der Seite springt. Ich nehme an, dass etwas mit meinem JS-Code nicht stimmt.Element, das Position auf Scroll-Jumps beim Laden der Seite verschoben wird
$(window).scroll(function() {
var scroll = $(window).scrollTop();
var objectSelect = $("#wrapnews");
var objectPosition = objectSelect.offset().top;
if (scroll > 300) {
$(".col-md-4").addClass("fix-sidebar");
} else {
$(".col-md-4").removeClass("fix-sidebar");
}
});
Hier ist die CSS für weitere Referenz
.fix-sidebar {
position: fixed !important;
top: 180px;
right: 30px;
width: 360px;
}
.sidenote {
text-align: center;
display: block;
background-color: #ccc;
color: #fff;
border: 2px solid #000;
border-radius: 2px;
width: 360px;
}
Und die Verschachtelung der HTML divs
<div class="col-md-4 fix-sidebar" id="wrapnews">
<div class="sidenote">
</div>
</div>
Dank sehen! Um für jeden, der daran interessiert ist, zu notieren, musste ich die Klasse .wrapnews in Ihrem CSS in #wrapnews ändern, damit es funktioniert. Es funktioniert immer noch, wenn Sie eine Pixelhöhe für jeden angeben, der es wissen muss. Ich habe folgendes verwendet: var objectSelect = $ ("# wrapnews"), objectPosition = objectSelect.offset(). Top; $ (Fenster) .scroll (function() {var scroll = $ (Fenster) .scrollTop(); if (scrollen> 500) { objectSelect.addClass ("fix-Sidebar"); } else { objectSelect.removeClass ("Fix-Sidebar"); } }); – Alaric