Jquery Scrolling Div выталкивает контент из нижней части страницы - PullRequest
0 голосов
/ 30 ноября 2011

Я пытаюсь получить div после прокрутки вниз по странице.Это работает довольно хорошо, но div застревает внизу страницы, когда я пытаюсь прокрутить слишком далеко:

$(function() {
    var $sidebar = $("#sidebar"),
        $bigPics = $("#bigPics"),
        $window = $(window),
        offset = $sidebar.offset(),
        topPadding = 20,
        turnoff = 1;
    var documentHeight = $(document).height();

    $window.scroll(function() {
        if (($window.scrollTop() > offset.top) && (documentHeight - 1200 > parseFloat($sidebar.css("marginTop")))) {
            $sidebar.stop().animate({
                marginTop: $window.scrollTop() - offset.top + topPadding
            });
        } else {
            $sidebar.stop();
        }
    });
});

Есть какие-нибудь идеи о том, как заставить его начаться снова, когда я прокручиваю страницу вверх?Приветствия заранее

Ответы [ 2 ]

0 голосов
/ 25 ноября 2013

я использовал плагин jquery

https://github.com/garand/sticky

, чтобы остановиться снизу:

(функция ($) {

var limit_bottom=$('#footer').height(); 
$('.product-box').sticky({topSpacing:0, bottomSpacing:limit_bottom});

}) (Jquery);

0 голосов
/ 30 ноября 2011

Использование:

$sidebar.css({'position':'absolute','top':0,'right':0});
var extraValue=0,sidebarHeight=$sidebar.height();
$window.scroll(function() {
    $sidebar.stop(true,true).animate({
       top: $window.scrollTop() + $window.height() - sidebarHeight + extraValue
    });
});

Вы можете легко достичь этого, используя css:

.sidebar{
position:fixed;
bottom:0;
right:0;
}

/* for browser not supporting fixed position as ie6 */
.oldBrowser .sidebar{
position:absolute;
top:expression( documentElement.scrollTop + body.scrollTop + yourExtraValue );
}

Вам нужно определить, когда есть старый браузер, и добавить класс ".oldBrowser к элементу тега body. Это можно сделать на стороне сервера или на стороне клиента, когда документ будет готов.

...