Исправлен div внутри другого div после определенной прокрутки

0

У меня есть div внутри другого div, как это:

<div class="parent">
<div class="child">Text</div>
</div>

Я хочу, с jQuery, сделать ребенка фиксированным, пока он остается внутри его родителя.. Я пробовал что-то вроде этого:

$(document).scroll(function() {
var y = $(document).scrollTop();

if(y >= $(".child").offset().top)  {
        $(".child").css("position", "fixed");
    } else {
        $(".child").css("position", "relative");
    }
});

Но это (очевидно) просто заставляет его исправить. Я хочу зафиксировать его, пока он "не ударит" по нижней границе его родителя. Что мне делать?

EDIT: Fiddle: http://jsfiddle.net/8T7Hr/

  • 1
    Можете ли вы сделать скрипку
  • 0
    Примерно так: jsfiddle.net/8T7Hr @AmitSoni
Теги:
scroll
fixed

1 ответ

4
Лучший ответ
var parent_top = $(".parent").offset().top;
var parent_bottom = $(".parent").offset().top + $(".parent").height() - $(".child").height();

$(document).scroll(function() {
  var y = $(document).scrollTop();

  if(y >= parent_top && y <= parent_bottom)  {
    $(".child").css({"position": "fixed", "top" : "0px"});
  } else {
    $(".child").css("position", "relative");
  }
});

FIDDLE

Ещё вопросы

Сообщество Overcoder
Наверх
Меню