왼쪽에 사용자와 함께 있어야하는 바가있는 사이트가 있습니다. 그래서 사용자가 스크롤하면 사이드 바가 페이지 상단에서 5px가 될 때까지 스크롤됩니다. 그때부터 그 자리에 고정되어야합니다.'고정'부동 고정/스크롤 사이드 바를 만들려면 어떻게해야합니까?
물론 뷰 포트가 왼쪽 막대보다 작을 수 있으므로 왼쪽 막대가 화면에 완전히 들어 가지 않을 수 있습니다. 그래도 극적이지는 않습니다. 그러나 사용자가 아래쪽으로 스크롤하면 사이드 바의 아래쪽이 페이지의 꼬리말을 '히트'한 다음 페이지와 함께 다시 스크롤하면됩니다.
다음 코드는 내 사이트의 기본적인 설정과 내 질문의 첫 번째 부분입니다 (그러나 작동하지 않는 것을 볼 수 있습니다) : jsfiddle.
질문의 첫 부분은 분명하지만 두 번째 부분은 이해하기가 어려울 수 있으므로 여기는 모형을 사용합니다. 텍스트가 위에 있기 때문에 텍스트가 표시되지 않는 것을 볼 수 있습니다 뷰포트.
$(document).ready(function() {
var theLoc = 5;
var links = $('#left');
$(window).scroll(function() {
console.log('scroll');
if (theLoc >= $(window).scrollTop()) {
if (links.hasClass('fixed')) {
links.removeClass('fixed');
}
} else {
if (!links.hasClass('fixed')) {
links.addClass('fixed');
}
}
});
});
그러나 가능성이 더 CSS 문제 :
여기 부분을 하나 내 시도에 대한 JS있어 나는 등 다시 (높이를 지정하려고
.fixed {
position:fixed;
}
그것은 매우 큰 것처럼 표시하기 때문에), 그러나 사전에.
체크 아웃이 플러그인 : http://mojotech.github.io/stickymojo/ – Anil
종종 이러한 플러그인이 필요한 것보다 더 많은 옵션을 제공하기 때문에 나 자신을 쓰기에 대해 생각했다. 그럼에도 불구하고, 나는 그것을 시도했다,하지만 난 꽤 내 table'd 레이아웃으로 작동하지 않는 것 같아요 : http://jsfiddle.net/kvVHh/1/ – jdepypere