Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.02.2016, 19:06
Аспирант
Отправить личное сообщение для Tord002 Посмотреть профиль Найти все сообщения от Tord002
 
Регистрация: 03.12.2014
Сообщений: 58

Зафиксировать блок при прокрутке
Здравствуйте!
Сильно не пинайте, пожалуйста!
Подобных тем много. Как фиксировать - понятно!
Заморочка в том, что блок который нужно зафиксировать при прокрутке находится по центру экрана. И при фиксировании отскакивает на высоту margin.
Помогите, пожалуйста, избавиться от этого скачка!
Скрипт
Ответить с цитированием
  #2 (permalink)  
Старый 16.02.2016, 19:35
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Исправь

toplogo_pos = ($('#top_logo').position().top + parseInt($('#top_logo').css('margin-top')));


Кстати создавать переменные без объявления var не очень хорошая идея
Ответить с цитированием
  #3 (permalink)  
Старый 16.02.2016, 20:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

destus,
а проще сможешь?
Ответить с цитированием
  #4 (permalink)  
Старый 16.02.2016, 20:08
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Сообщение от рони Посмотреть сообщение
destus,
а проще сможешь?
Неа, расскажи.
Ответить с цитированием
  #5 (permalink)  
Старый 16.02.2016, 20:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

destus,
нужно получить тор элемента в документе, для этого в jquery есть специальный метод.
Ответить с цитированием
  #6 (permalink)  
Старый 16.02.2016, 20:36
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Сообщение от рони Посмотреть сообщение
destus,
нужно получить тор элемента в документе, для этого в jquery есть специальный метод.
offset? Ну так ведь в этом примере position тоже относительно документа будет...
Ответить с цитированием
  #7 (permalink)  
Старый 16.02.2016, 20:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

destus,
зато мучатся с отступами ненадо и наверняка html в реальности будет как лабиринт https://jsfiddle.net/qbnw4wnz/2/
Ответить с цитированием
  #8 (permalink)  
Старый 16.02.2016, 22:03
Аспирант
Отправить личное сообщение для Tord002 Посмотреть профиль Найти все сообщения от Tord002
 
Регистрация: 03.12.2014
Сообщений: 58

Работает идеально!!!!!!!!!!!!!
Спасибо огромное!
Если не затруднит, подскажите, что тут не так со скриптом?
Нужно чтобы блок исчезал при прокрутке вниз и появлялся при прокрутке вверх. Но сейчас поведение у блока совсем не понятное.
Скрипт брал тут
p.s. не получается поставить + в карму рони. сайт пишет "вы должны добавить отзыв кому-то еще, предже чем сможете снова добавить его рони." Поставил + в карму destus. Пытаюсь снова добавить рони, но алерт сайта тот-же
Ответить с цитированием
  #9 (permalink)  
Старый 16.02.2016, 22:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

блок исчезал при прокрутке вниз и появлялся при прокрутке вверх
Tord002,
<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.12.0/jquery.js"></script>
<style type="text/css">
    .top_logo {
position: absolute;
width: 150px;
height: 132px;
left: 50%;
top: 50%;
margin-left: -75px;
margin-top: -66px;
background-color:#c2151a;
}
  </style>

  <title></title>
<script>
jQuery(function(f){
    var element = f('#top_logo');
    f(window).scroll(function(){ f('p').text(f(this).scrollTop())
      if(f(this).scrollTop() < 200 && element.is(':hidden')) element.fadeIn(500)
      else if(f(this).scrollTop() > 200 && element.is(':visible')) element.fadeOut(500)
    });
});
</script>
</head>

<body>
<p style="width: 100%; height: 15px; position: fixed; top : 200px"></p>
  <div style="height:100%">
<div id="top_logo" class="top_logo"></div>
</div>

<div style="min-height:1000px"></div>

</body>

</html>
Ответить с цитированием
  #10 (permalink)  
Старый 16.02.2016, 23:52
Аспирант
Отправить личное сообщение для Tord002 Посмотреть профиль Найти все сообщения от Tord002
 
Регистрация: 03.12.2014
Сообщений: 58

УРА!
СПАСИБО! ОГРОМНОЕ!
рони, Вы очень помогли!
ОЧЕНЬ БЛАГОДАРЕН!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Появление/исчезновение элемента при прокрутке страницы JQuery 0leg9 Общие вопросы Javascript 37 21.09.2017 07:41
Исчезаение блока при прокрутке страницы gogogo Общие вопросы Javascript 3 28.12.2014 16:45
Как изменить поведение блоков при прокрутке? Szorstki Элементы интерфейса 11 30.11.2014 17:21
Раскрытие текста при наведении курсора на блок. Scorpionnn Events/DOM/Window 1 17.11.2012 13:40
Как задать изменение src при прокрутке chandler Элементы интерфейса 3 12.01.2012 01:23