Я написал свою собственную функцию, которая фиксирует боковую панель на экране после определенной точки прокрутки, а затем возвращает ее в ее относительное положение при прокрутке назад. Если размер окна изменяется на меньший размер, чем высота боковой панели, он также возвращает его в нормальное относительное положение. Прекрасно работает!Функция jQuery кажется прекращенной, когда вызывается разная функция jQuery.
Проблема заключается в том, что я запускаю еще одну функцию, а именно fancybox(), в панорамной миниатюре в теле страницы и прокручиваю ее, моя оригинальная функция «прокрутки-исправления», похоже, перестает работать.
Кто-нибудь знает, почему это так?
////////////////////
Demo Page
////////////////////
////////////////////////////////////
«Свиток-Fix "Функция
$(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");
}
});
});
Приятный дизайн и цыпленок на веб-странице! Я не мог испытать вашу проблему, хотя в Google Chrome. – aolde
Извините, теперь это заметили. Я бы предпочел посмотреть, что делает fancybox, что нарушает ваш скрипт. – aolde