Я пытался понять это; как я могу получить.float-div, чтобы не отступать от вершины при прокрутке вниз? Я бы хотел, чтобы это было зафиксировано в верхней части окна во время прокрутки. Если вы заберете.top-entry, он будет работать нормально. Но как я могу исправить это, не удаляя.top-entry?
http://jsfiddle.net/loktar/Kjc6k/2/
var $scrollingDiv = $(".float-div");
$(window).scroll(function(){
var y = $(this).scrollTop(),
$postEntry = $('.post-entry'),
maxY = $postEntry.offset().top + $postEntry.height(),
scrollHeight = $scrollingDiv.height();
if(y< maxY-scrollHeight ){
$scrollingDiv
.stop()
.animate({"marginTop": ($(window).scrollTop()) + "px"}, "slow" );
}
});
Это мой новый ответ, это скрипка http://jsfiddle.net/Kjc6k/48/ надеюсь, что это то, что вы ищете :)
var $scrollingDiv = $(".float-div");
$(window).scroll(function(){
var y = $(this).scrollTop(),
$topEntry = $('.top-entry').height();
if( y > $topEntry){
$scrollingDiv
.stop()
.animate({"margin-top": y + "px"}, "slow" );
}
else
$scrollingDiv
.stop()
.animate({"margin-top": "80px"}, "slow" );
});
Добавление top:0
в класс float-div легко устранит это.
.float-div {
position: absolute;
background: red;
top: 0;
}
обновленная скрипка: http://jsfiddle.net/7KSTs/