특정 스크롤 지점 이후에 화면에 고정 된 사이드 바를 유지 한 다음 맨 위로 스크롤 할 때 상대 위치로 돌아 오는 자체 함수를 작성했습니다. 창 크기가 사이드 바 높이보다 작은 경우 창 크기가 조정되면 정상적인 상대 위치로 돌아갑니다. 위대한 작품!다른 jQuery 함수가 호출되었을 때 jQuery 함수가 종료 된 것처럼 보입니다.
페이지의 본문에있는 파노라마 미리보기 이미지에서 fancybox()와 같은 다른 기능을 실행하고 스크롤을 시도 할 때 내 원래의 "스크롤 수정"기능이 작동하지 않는 것 같습니다.
누구나 알고 계십니까?
////////////////////
Demo Page
////////////////////
////////////////////////////////////
"스크롤 - 수정 "함수
$(document).ready(function(){
var element = $("#sidebar");
var window_height = $(window).height();
var element_height = element.height();
$(window).ready(function() {
if (window_height > element_height) {
if (($(document).scrollTop() + element.height()) > ($(document).height() - $("#footer").height() - 9)) {
element.css("position","absolute");
element.css("top", "auto");
element.css("bottom","-60px");
}
else if ($(document).scrollTop() > 220) {
element.css("position","fixed");
element.css("top","9px");
element.css("padding-top","0");
element.css("bottom","auto");
}
else {
element.css("position","relative");
element.css("top","auto");
element.css("padding-top","57px");
element.css("bottom","auto");
}
}
else {
element.css("position","relative");
element.css("top","auto");
element.css("padding-top","57px");
element.css("bottom","auto");
}
});
$(window).scroll(function() {
if (window_height > element_height) {
if (($(document).scrollTop() + element.height()) > ($(document).height() - $("#footer").height() - 9)) {
element.css("position","absolute");
element.css("top", "auto");
element.css("bottom","-60px");
}
else if ($(document).scrollTop() > 220) {
element.css("position","fixed");
element.css("top","9px");
element.css("padding-top","0");
element.css("bottom","auto");
}
else {
element.css("position","relative");
element.css("top","auto");
element.css("padding-top","57px");
element.css("bottom","auto");
}
}
else {
element.css("position","relative");
element.css("top","auto");
element.css("padding-top","57px");
element.css("bottom","auto");
}
});
$(window).resize(function(){
window_height = $(window).height();
if (window_height > element_height) {
if (($(document).scrollTop() + element.height()) > ($(document).height() - $("#footer").height() - 9)) {
element.css("position","absolute");
element.css("top", "auto");
element.css("bottom","-60px");
}
else if ($(document).scrollTop() > 220) {
element.css("position","fixed");
element.css("top","9px");
element.css("padding-top","0");
element.css("bottom","auto");
}
else {
element.css("position","relative");
element.css("top","auto");
element.css("padding-top","57px");
element.css("bottom","auto");
}
}
else {
element.css("position","relative");
element.css("top","auto");
element.css("padding-top","57px");
element.css("bottom","auto");
}
});
});
웹 페이지에서 멋진 디자인과 병아리! 그래도 Chrome을 사용하여 문제가 발생하지 않았습니다. – aolde
죄송합니다, 지금 알게되었습니다. 차라리 fancybox가 스크립트를 중단시키는 일을하고 싶습니다. – aolde