Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.12.2018, 20:14
Аспирант
Отправить личное сообщение для zava75 Посмотреть профиль Найти все сообщения от zava75
 
Регистрация: 13.07.2018
Сообщений: 34

Фиксировать Sidebar при прокрутке страницы jQuery
Добрый день, может кто знает я зафиксировал блок #fixed как правильно прописать остановку при появлении блока футера #Footer в if я так понимаю?

$(document).ready(function () {
   // var offsetFooter = $('#Footer').offset();
    var offset = $('#fixed').offset();
    var topPadding = 0;
    $(window).scroll(function() {
        if ($(window).scrollTop() > offset.top ) {
            $('#fixed').stop().animate({marginTop: $(window).scrollTop() - offset.top + topPadding});
        }
        else {
            $('#fixed').stop().animate({marginTop: 0});
        }
    });
});
Ответить с цитированием
  #2 (permalink)  
Старый 29.12.2018, 22:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

блок замирающий над футером
zava75,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  body{
      position: relative;
      height: 2000px;
      padding: 0;
      margin: 0;
  }

  #fixed{

      height:  50px;
      width: 100%;
      top: 40px;
      position: absolute;
      background-color: #A9A9A9;
      border-bottom: 3px solid #FF00FF;
  }
 #Footer{
      background-color: #8FBC8B;
      width: 100%;
      height:  1500px;
      position: absolute;
      bottom: 0;
 }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
$(function () {
    var offset = $('#fixed').offset().top; 
    var height = $('#fixed').outerHeight(true);
    var offsetFooter = $('#Footer').offset().top - height;
    var topPadding = 0;
    $(window).scroll(function() {
            var scroll = $(window).scrollTop();
            var top = Math.min(offsetFooter, scroll + offset);
            $('#fixed').stop().animate({top: top});
    });
});

  </script>
</head>

<body>
<div id="fixed">fixed</div>
<div id="Footer">Footer</div>
</body>
</html>

Последний раз редактировалось рони, 30.12.2018 в 02:30.
Ответить с цитированием
  #3 (permalink)  
Старый 30.12.2018, 11:57
Аспирант
Отправить личное сообщение для zava75 Посмотреть профиль Найти все сообщения от zava75
 
Регистрация: 13.07.2018
Сообщений: 34

Спасибо! за помощь!!! Так как вы сделали не получилось, как сайт на ворд пресс + тема нельзя использовать стили с значениями position: absolute;
Решил так, выкинул анимацию , не знаю работает но правильно код написал.?
$(document).ready(function () {
    var height = $('#fixed').outerHeight(true);
    var offsetFooter = $('#Footer').offset().top - height;
    var offset = $('#fixed').offset();
    var topPadding = 0;
    $(window).scroll(function() {
        if ($(window).scrollTop() > offset.top && $(window).scrollTop()  < offsetFooter - height ) {
            $('#fixed').css({marginTop: $(window).scrollTop() - offset.top + topPadding});
        }
        else {
            $('#fixed').css({marginTop: 0});
        }
    });
});
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анимация блока при прокрутке страницы LADYX Элементы интерфейса 5 14.09.2016 09:40
Изменение цвета текста при прокрутке страницы Fostik Общие вопросы Javascript 1 25.12.2014 06:00
Эффект при прокрутке страницы Baskerville42 jQuery 1 17.05.2013 02:29
Автозапуск скрипта при загрузке страницы HepoH Javascript под браузер 3 31.03.2012 22:27
При прокрутке страницы div залазит на футер. Как поправить? DonaldDrug jQuery 8 27.03.2012 02:15